Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Право на восстановление [D5, IB6.x]


First_May ©   (2004-01-26 11:47:00) 

Здравствуйте, подскажите пожалуйста, как можно пользователю дать право на восстановление базы? Что бы базу мог восстанавливать не только SYSDBA, но и напримре TEST.


First_May   (2004-01-27 16:15:00) [1]

А с чем связано?


y-soft   (2004-01-27 15:35:00) [2]

Да, сейчас специально


First_May   (2004-01-27 15:04:00) [3]

Все получилось, классно!!! :) Спасибо. А интересно, это они специально эту дыру не заделывают?


y-soft   (2004-01-27 14:45:00) [4]

Пройдет с любым клоном IB, который поддерживает права и роли

Владельца базы проще всего узнать, открыв ее в InterBase Server Manager. Только вот надо иметь права на ее открытие :)


First_May   (2004-01-27 12:44:00) [5]

А как вообще можно посмотреть, кто владелец базы?


First_May   (2004-01-27 12:42:00) [6]

Это с Yaffil"ом пройдет?


First_May   (2004-01-27 10:13:00) [7]

Ясно, сейчас попробую


y-soft   (2004-01-27 09:35:00) [8]

>First_May © (27.01.04 09:00) [7]

От SYSDBA базу по идее никто защищать не должен, на то он и SYStem Data Base Administrator :)

А то, что от него все-таки можно прикрыться - следствие глючка в IB. IB сначала проверяет роли, а только потом пользователя, который пытается подсоединиться к базе. Кроме того, роль создается по умолчанию бесправной. Сразу после соединения происходит обращение к системным таблицам, чтобы проверить соответствие кодовой таблицы. Т.е. если создать в базе роль под названием SYSDBA и явно после этого не назначить ей никаких прав, то IB будет считать, что пользователь не имеет права работать с системными таблицами, а без этого получить доступ к базе невозможно

Т.е. порядок действий такой:

1. Владельцем базы должен быть не SYSDBA. Для того, чтобы сменить владельца надо сделать базе backup под учетной записью SYSDBA, а затем restore в новый файл под учетной записью будущего владельца
2. После этого надо открыть базу под учетной записью нового владельца и выполнить команду CREATE ROLE SYSDBA

ЗЫ С базой все равно можно будет работать в Yaffil Personal :(


First_May   (2004-01-27 09:00:00) [9]

То y-soft
Второй способ однозначно не подходит, так как SYSDBA должен быть, потому что с ним работают другие базу, а вот с первым можно поподробнее? Да и вообще, подскажите пожалуйста, кто и как защищает базу IB от SYSDBA?


y-soft   (2004-01-26 18:20:00) [10]

Можно.

1. Можно в базе создать роль SYSDBA и не присваивать ей никаких прав. Тогда SYSDBA не сможет даже открыть базу

2. Можно и самого SYSDBA удалить из ISC4.gdb (или ее аналогов в FB), но это уже будет паранойя :)


First_May   (2004-01-26 15:19:00) [11]

А можно ли вообще закрыть базу от SYSDBA?


y-soft   (2004-01-26 14:46:00) [12]

А в эту же могут только SYSDBA или владелец базы


First_May   (2004-01-26 14:15:00) [13]

Что значит: "Если база не восстанавливается поверх существующей, то восстановить ее может любой пользователь". Восстановить в новую да, а в эту же?


y-soft   (2004-01-26 13:07:00) [14]

Если база не восстанавливается поверх существующей, то восстановить ее может любой пользователь. При этом он становится владельцем восстановленной базы и получает все права на нее...


First_May   (2004-01-26 12:13:00) [15]

Или этого сделать КАТЕГОРИЧНО нельзя?


Наверх

Титульная страница Поиск, карта сайта Написать письмо