full_lamer |
Отправлено: 08.05.2004, 21:32 |
|
Машинист паровоза
Группа: Участник
Сообщений: 225
|
Можно ли запретить SYSDBA в IB6.5 доступ к чему либо?
|
|
olegenty |
Отправлено: 11.05.2004, 07:24 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
можно
|
|
full_lamer |
Отправлено: 11.05.2004, 07:53 |
|
Машинист паровоза
Группа: Участник
Сообщений: 225
|
как?
|
|
Admin |
Отправлено: 11.05.2004, 08:37 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Измените ему пароль со стандартного masterkey,
создайте нового пользователя и дайте ему нужные права.
Под этим именем пусть и подключается к БД.
В IBExpert это делается достаточно просто (визуально)
в Инструменты->Менеджер прав и Менеджер пользователей.
Кроме того, вы можете создать Роли и назначить доступ
на уровне ролей.
|
|
full_lamer |
Отправлено: 11.05.2004, 08:54 |
|
Машинист паровоза
Группа: Участник
Сообщений: 225
|
Спасибо за идею! Сам не догадался... просто я хотел вообще запретить sysdba доступ к моим таблицам.... скоко возился не получилось... — я так понимаю sysdba в IB царь и бог! Кстати, когда-нибудь в IB будет возможность хранить пароли непосредствено в самой БД? А то как то не стирильно получается... взял Бд пошел на другую машинку и получил к ней доступ...
|
|
olegenty |
Отправлено: 11.05.2004, 09:51 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
можешь пользователя SYSDBA вообще из базы удалить, а его права передать одному тебе известному логину. осторожней только делай подобные вещи, и логин альтернативный с паролем на болванку нареж, чтоб не искать, когда забудешь...
|
|
full_lamer |
Отправлено: 11.05.2004, 10:17 |
|
Машинист паровоза
Группа: Участник
Сообщений: 225
|
Помоему не получится, покрайней мере в IBConsole нельзя... и в IBExperte тоже нельзя....
|
|
Deem |
Отправлено: 12.05.2004, 13:36 |
|
Мастер участка
Группа: Участник
Сообщений: 327
|
Просто если посмотреть в ситемные таблицы, увидишь, что хозяин всех объектов базы(особенно системных) — это SYSDBA. На этом основано его могущество.
Его можно удалить. Но если никто больше не имеет подобных прав, можно потерять контроль над базой.
Правда, всегда можно подсунуть серверу IB другую базу isc4.gdb с новым SYSDBA. И снова станешь хозяином. Это — самая большая хрень IB, FireBird и Juffy(тоже вроде) .
|
|
full_lamer |
Отправлено: 12.05.2004, 17:04 |
|
Машинист паровоза
Группа: Участник
Сообщений: 225
|
А как это можно сделать? Я правда еще не эксперементировал, просто времени нет — надо проект заказчикам показывать, а их не сильно волнуют внутренние алгоритмы: поэтому сижу шлифую интерфейс....
|
|
Deem |
Отправлено: 25.05.2004, 11:29 |
|
Мастер участка
Группа: Участник
Сообщений: 327
|
Ну, например, открыть с правами SYSDBA базу ISC4.GDB (SECURITY.FDB) как обычную базу и удалить из таблицы USERS запись с пользователем SYSDBA. Я не пробовал, но догадываюсь, что SYSDBA в пользовательскую базу не войдет (а может и ошибаюсь). Но скорее всего он — простой пользователь, т.к. прописан всетаки с остальными. Поэтому — убиваемый. Но до этого (убивания) надо пойти по системным таблицам пользовательской базы и заменить где можно OWNER — а объектов на не-SYSDBA. SYSDBA я кажись убивал то ли из IBConsole, то ли запросом из базы ISC4.GDB. Потом долго совесть мучила (OWNER остался-то SYSDBA)
|
|
full_lamer |
Отправлено: 25.05.2004, 11:47 |
|
Машинист паровоза
Группа: Участник
Сообщений: 225
|
Нет оказывается можно просто запретить права доступа SYSDBA, я правда не понял как, но факт есть факт — пытаюсь я законектиться к базе — а она мне гоовори, что доступ закрыт... Так что можно...
Я пытался создавать нового пользователя давать ему неограниченные права и запрещать сисдба доступ к чему либо, вместе с сисдба доступ запрещается и моим пользователям
кстати есть такие SQL коды:
" ... with grant option"
и
" ... with admin option"
я не могу понять как использовать второй и что он конкретно делает?
|
|
olegenty |
Отправлено: 25.05.2004, 13:35 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
QUOTE |
The role can be granted WITH ADMIN OPTION, which allows users to grant the role to others, just as the WITH GRANT OPTION allows users to grant privileges to others.
|
грантить можно две вещи:
1. роли пользователям
2. права доступа на объекты пользователям
так вот AO — это право грантить роли пользователям, а GO — только привилегии доступа на объекты.
для удаления SYSDBA надо просто
1 Как и сказал Deem — сменить owner. Но, как я понимаю, можно и проще: owner отдать некоей роли, тогда SYSDBA — не критичен...
2 Убить SYSDBA
3 Но помнить при этом, кто есть owner, и это должен быть ТЫ
|
|