Как создать пользователя не пользователем SYSDBA?

Администирование клиентской и серверной части InterBase, Firebird, Yaffil. Настройка файла конфигурации и т.п.

Модераторы: kdv, Alexey Kovyazin

Ответить
AlexKich
Сообщения: 14
Зарегистрирован: 08 авг 2005, 11:48

Как создать пользователя не пользователем SYSDBA?

Сообщение AlexKich » 05 мар 2007, 17:28

и не владльцем базы?

Сервер FB 2.0.1.

Пробовал IBExpert(ом) - не получилось. Пробовал при подключении к базе локально и через IP.

Пишет "нет прав на вставку/запись таблицы USERS".

Это как то решается?

Хочется дать права на добавление/изменение/удаление пользователей определенному пользователю, при этом не хочется давать ему пароль SYSDBA и создателя базы.

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

Сообщение kdv » 05 мар 2007, 17:42

никак.

AlexKich
Сообщения: 14
Зарегистрирован: 08 авг 2005, 11:48

Сообщение AlexKich » 05 мар 2007, 17:44

kdv писал(а):никак.
а если отредактировать права в security2.fdb?

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

Сообщение WildSery » 05 мар 2007, 17:56

AlexKich писал(а):а если отредактировать права в security2.fdb?
Каким образом? HEX-редактором что ли?

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

Сообщение Slavik » 05 мар 2007, 18:09

В FB2 запрещён прямой доступ к Security2.FDB, а доступ к полному списку пользователей разрешён только SYSDBA. Это ведь ясно написано в релизнотах.
AlexKich писал(а):Это как то решается?
Да. Например, пишется собственная служба на сервере, которая "знает" пароль SYSDBA и умеет делать все необходимые действия со списком пользователей. Клиент дёргает эту службу. Служба проверяет полномочия клиента и поступает соответственно им.

AlexKich
Сообщения: 14
Зарегистрирован: 08 авг 2005, 11:48

Сообщение AlexKich » 05 мар 2007, 20:38

Спасибо за ответы.

AlexKich
Сообщения: 14
Зарегистрирован: 08 авг 2005, 11:48

Сообщение AlexKich » 05 мар 2007, 23:27

Провел эксперимент.
Запустил сервер (дома сервер по умолчанию выключен).
Добавил пользователя. Выключил сервер.
Сделал копию security2.fdb (дома сервер по умолчанию выключен).
Запустил сервер. Подцепил копию security2.fdb в IBExpert.
Дал админские права (простых не хватает) своему пользователю на все таблицы в том числе и системные, хотя скорее всего можно ограничиться каким-то минимумом, который позволить только рулить пользователями.
Закрыл IBExpert и остановил сервер.
Вернул отредактированную security2.fdb на место. Запустил сервер.
В IBExpert открыл тестовую базу (создана SYSDBA) под своим пользователем и спокойно добавил пользователей (правда они не появились в списке пользователей, пришлось зайти по SYSDBA, что бы их увидеть).
Я не знаю к чему это может привести поэтому не буду использовть в промышленной базе. Но убей меня бог не могу понять почему для добавления пользователй в БД, я (как админ БД) должен отдавать пароль создателя БД вместо назначения ответсвенных за добавление и изменение учетных записией. Но принимаю это как данность этого бытия :)

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

Сообщение kdv » 06 мар 2007, 00:56

Я не знаю к чему это может привести поэтому не буду использовть в промышленной базе. Но убей меня бог не могу понять почему для добавления пользователй в БД, я (как админ БД) должен отдавать пароль создателя БД вместо назначения ответсвенных за добавление и изменение учетных записией. Но принимаю это как данность этого бытия
ну нету в FB "ролей" по отношению к метаданным кроме SYSDBA и DB OWNER.

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

Сообщение Dimitry Sibiryakov » 06 мар 2007, 08:00

AlexKich писал(а):Но убей меня бог не могу понять почему для добавления пользователй в БД, я (как админ БД) должен отдавать пароль создателя БД вместо назначения ответсвенных за добавление и изменение учетных записией.
Учетные записи пользователей принадлежат не базе, а серверу. Админ сервера - SYSDBA. Вот и все.
Если в третьей птичке будут пользователи, хранящиеся в базе, рулить ими сможет владелец базы (наверное).

AlexKich
Сообщения: 14
Зарегистрирован: 08 авг 2005, 11:48

Сообщение AlexKich » 06 мар 2007, 08:21

Еще раз, спасибо :)

sland
Сообщения: 12
Зарегистрирован: 11 мар 2008, 10:50

Сообщение sland » 11 мар 2008, 11:22

Да. Например, пишется собственная служба на сервере, которая "знает" пароль SYSDBA и умеет делать все необходимые действия со списком пользователей. Клиент дёргает эту службу. Служба проверяет полномочия клиента и поступает соответственно им.
У меня похожая проблема. Новые пользователи добавляются только на сервере и только от имени SYSDBA. Это правильно, или просто у меня что-то не получается? Решаю похожим способом - специальной службой, которая создает/удаляет пользователей от имени SYSDBA.

Ответить