Загадочный owner...

Как защититься от хаков, спрятать БД и прочие премудрости и настройки

Модератор: kdv

Ответить
Naidenov
Сообщения: 59
Зарегистрирован: 18 янв 2005, 17:38

Загадочный owner...

Сообщение Naidenov » 02 ноя 2007, 18:27

Предисловие: Отресторил БД от имени другого пользователя -> другой пользователь - владелец БД.
System Info: FB CS 1.5.2
Вопрос(ы):

1. Владелец БД <> владелец существовавших ранее в ней объектов. Почему?
2. Как "относительно безболезненно" сменить владельца существующих объектов БД стандартными средствами?

Naidenov
Сообщения: 59
Зарегистрирован: 18 янв 2005, 17:38

Сообщение Naidenov » 06 ноя 2007, 13:54

Господа, ну не падайте на мороз! Помогите, кто чем сможет. Кто советом, кто ссылкой... :(

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 06 ноя 2007, 14:06

Простой путь: пересоздать БД из скрипта. Сложный путь: погуглить на предмет Owner Migration и падать в ноги автору чтобы осчастливил утилькой.

Slavik
Сообщения: 115
Зарегистрирован: 17 янв 2007, 11:52

Re: Загадочный owner...

Сообщение Slavik » 06 ноя 2007, 14:31

1. Не знаю. Может разработчики ответят или ещё кто-нибудь более сведущий.
2. Стандартные средства - это какие? Можно выгрузить базу в скрипт и соответственно создать новую базу от имени "правильного" владельца. Но я просто делал update RDB$RELATIONS set RDB$OWNER_NAME = "Новый владелец"
После чего опять backup/restore от имени нового владельца.

Naidenov
Сообщения: 59
Зарегистрирован: 18 янв 2005, 17:38

Сообщение Naidenov » 06 ноя 2007, 14:32

Dimitry Sibiryakov писал(а):Простой путь: пересоздать БД из скриптаю
А почему не воспользоваться недокументированными возможностями и не поправить процедурой RDB$USER_PRIVILLEGE и связанные с ней другие системные таблицы?
Dimitry Sibiryakov писал(а):Сложный путь: погуглить на предмет Owner Migration и падать в ноги автору чтобы осчастливил утилькой.
Вряд ли такие поклоны и кувырки в ноги к чему-то приведут... :(

Naidenov
Сообщения: 59
Зарегистрирован: 18 янв 2005, 17:38

Re: Загадочный owner...

Сообщение Naidenov » 06 ноя 2007, 14:49

Slavik писал(а):1. Не знаю. Может разработчики ответят или ещё кто-нибудь более сведущий.
2. Стандартные средства - это какие? Можно выгрузить базу в скрипт и соответственно создать новую базу от имени "правильного" владельца. Но я просто делал update RDB$RELATIONS set RDB$OWNER_NAME = "Новый владелец"
После чего опять backup/restore от имени нового владельца.
Хотя подобные идеи и бродили у меня в голове, все равно, благодарю за сопричастность. :wink:
Я пока не теряю надежды, что все-таки существует лучшее и более элегантное решение.

Naidenov
Сообщения: 59
Зарегистрирован: 18 янв 2005, 17:38

Сообщение Naidenov » 06 ноя 2007, 14:56

Общий вопрос ко всем, кто интересуется топиком:

Какой смысл в в самостоятельном понятии "владелец БД", если таковым может быть любой пользователь, восстановивший базу? Не могу взять в толк, какой от него "особенный прок", который нельзя было бы получить другим способом?


ЗЫ. Прошу прощение за дотошность, но очень уж хочеться основательно разобраться во всех этих кренделях небесных! :wink:
Последний раз редактировалось Naidenov 06 ноя 2007, 16:43, всего редактировалось 1 раз.

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 06 ноя 2007, 15:33

Naidenov писал(а):Какой смысл в в самостоятельном понятии "владелец БД", если таковым может быть любой пользователь, восстановивший базу? Не могу взять в толк, какой от него "особенный толк", который нельзя было бы получить другим способом?
Отправить базу в шатдаун, подключиться к ней после этого, снять бэкап с работающей базы может только владелец (сисдба не в счёт)

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 06 ноя 2007, 16:27

владелец БД это аналог sysdba, и не обязательно автор метаданных. Понятно? Например, VASYA может создать таблицу или процедуру, и он будет ее автором, но он не будет владельцем БД. А владелец БД не станет после рестора автором этой процедуры.

Naidenov
Сообщения: 59
Зарегистрирован: 18 янв 2005, 17:38

Сообщение Naidenov » 06 ноя 2007, 16:35

WildSery писал(а):Отправить базу в шатдаун...
Спасибо. Я не знал, что владелец тоже может закрыть базу, и в литературе(статьях) тоже это не встречал. А поскольку пользоваться этим на практике не приходилось, то я и решил поспрошать здешний люд "что да к чему?" :wink:

Naidenov
Сообщения: 59
Зарегистрирован: 18 янв 2005, 17:38

Сообщение Naidenov » 06 ноя 2007, 16:41

kdv писал(а):владелец БД это аналог sysdba, и не обязательно автор метаданных. Понятно? Например, VASYA может создать таблицу или процедуру, и он будет ее автором, но он не будет владельцем БД. А владелец БД не станет после рестора автором этой процедуры.
Об этом обо всем я читал :) Непонятна была практическая необходимость "введения" самостоятельного понятия "владелец БД". Проще говоря, на кой ляд лудить мозк какими-то "особенными" пользователями вроде владелец БД, если на практике толку от него, как от козла молока, а все его "супер функции" могут быть преспокойно выполнены кем-то другим (кроме сисдба)! :wink:

Прочитав вот это:
WildSery писал(а):Отправить базу в шатдаун, подключиться к ней после этого, снять бэкап с работающей базы может только владелец (сисдба не в счёт)
Все становиться ясно и понятно! :!:

Naidenov
Сообщения: 59
Зарегистрирован: 18 янв 2005, 17:38

Сообщение Naidenov » 06 ноя 2007, 16:57

И все таки остается без ответа мой 2-ой вопрос.
Неужели не существует лучшего и более элегантного решения, кроме как вылить все в скрипт -> залить обратно под другим пользователем(владельцем) (а база то аж 8,2 Гб ), клянчить со слезами на глазах у какого-то дяди супер утилиту или править системные объекты руками??? :?:

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 06 ноя 2007, 17:49

Naidenov писал(а):И все таки остается без ответа мой 2-ой вопрос.
Неужели не существует лучшего и более элегантного решения, кроме как вылить все в скрипт -> залить обратно под другим пользователем(владельцем) (а база то аж 8,2 Гб ), клянчить со слезами на глазах у какого-то дяди супер утилиту или править системные объекты руками??? :?:
Есть.

1. Разобраться в структуре системных таблиц.
2. Понять, что ещё и в каком порядке (это важно) нужно сделать, кроме изменения owner в rdb$relations, чтоб получилось корректно. Или поиском, поиском... Кстати, когда-то и здесь тоже всё расписывал. Но разобраться - надёжней.
3. Если это в силу некоторых причин религиозного характера приходится делать регулярно (вместо того, чтобы сразу создавать и базу и объекты в ней от нужного пользователя), сделать свою утиль и никому не кланяться.

На всё про всё с экспериментами и парой заломанных тестовых базёнок уйдёт полдня максимум. Но проще, конечно, неделю торчать на форуме, может кто разжует. А может и ляпнет не подумавши.

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 06 ноя 2007, 17:55

Мне когда-то потребовалось у нескольких объектов владельцев поменять - я за полчаса набросал прогу, генерирующую скрипт для смены владельца методом пересоздания (с учётом зависимостей). Разбираться было лень :)
Вот только таблицы этим методом долго пересоздаются - через временные таблицы данные льются...

ЗЫ: А "автор" этих объектов получил по шее. Чтоб под SYSDBA больше не создавал ничего.

Naidenov
Сообщения: 59
Зарегистрирован: 18 янв 2005, 17:38

Сообщение Naidenov » 06 ноя 2007, 18:05

Merlin писал(а):Но проще, конечно, неделю торчать на форуме, может кто разжует. А может и ляпнет не подумавши.
А ты злобный гений. :) Не прав ты здесь, потому что делаешь выводы, до конца не зная всех обстоятельств и ньюансов. Но в любом случае, спасибо. :wink:

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 07 ноя 2007, 10:04

Naidenov писал(а):Вряд ли такие поклоны и кувырки в ноги к чему-то приведут... :(
Почему? До сих пор я не слышал, чтобы автор Owner Migrator-а отказывал кому-то. Другое дело, что в общий доступ он этот утиль не дает - только по личному запросу.

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 07 ноя 2007, 14:26

Я не злой, я просто трезвый. Уже неделю.

Naidenov
Сообщения: 59
Зарегистрирован: 18 янв 2005, 17:38

Сообщение Naidenov » 07 ноя 2007, 15:50

Dimitry Sibiryakov писал(а):Почему? До сих пор я не слышал, чтобы автор Owner Migrator-а отказывал кому-то. Другое дело, что в общий доступ он этот утиль не дает - только по личному запросу.
Благодарю. Попытаю счастья.

Ответить