Страница 1 из 1

Как задать привилегии на определённых пользователей

Добавлено: 02 июн 2006, 01:35
alpha5
Здравствуйте!
Помогите, пожалуйста, разобраться с такой проблемой:
я создал нового пользователя "admin".
Затем я в базе данных создал роль "ADMINISTRATOR" и назначил ей привилегию:

Код: Выделить всё

grant ALL on "ABONENT" to "ADMINISTRATOR" WITH GRANT OPTION;
После этого я пишу в программе:

Код: Выделить всё

Datamodule1.IBDatabase1.Connected := false;
DataModule1.IBDatabase1.Params.Clear;
Datamodule1.IBDatabase1.Params.Add('lc_ctype=WIN1251');
Datamodule1.IBDatabase1.Params.Add('user_name=' + EdLogin.Text); // логин
Datamodule1.IBDatabase1.Params.Add('password=' + EdPassword.Text); // пароль
if EdLogin.Text = 'admin' then
  Datamodule1.IBDatabase1.Params.Add('sql_role_name=administrator');
Datamodule1.IBDatabase1.Connected := true;
И после этого при обновлении набора данных у меня выскакивает ОШИБКА:
no permission for read/select access to table ABONENT
тип ошибки: EIBInterBaseRoleError.


:?: Помогите пожалуйста разобраться, почему нельзя ничего делать с этой таблицей?

:?: И как ещё можно созданным пользователям (которые хранятся в файле isc4.gdb), задавать привилегии на

определённые таблицы в БД?

Заранее благодарю!

Добавлено: 02 июн 2006, 09:00
Dimitry Sibiryakov
А ты админу разрешил исполнять эту роль?
grant administrator to user admin

Все разрешения даются грантами. Роли это "предопределенные" пачки грантов.