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

Grant Option для ролей

Добавлено: 05 дек 2006, 15:51
М_и_х_а_и_л
Добрый день,

Впервые вплотную занялся ролями. Ситуация такая.

Назначаются права на некую таблицу роли "DBADMIN" с Grant Option. Запрос работает. Теперь любой пользователь, принадлежащий к роли "DBADMIN", может с ней работать. Но передать права другой роли, скажем "DBUSER" не может (если он не владелец таблицы).

Получается, что Grant Option передается только конкретным пользователям, но не ролям? Подскажите, кто знает, можно ли сделать это ролями.

Добавлено: 05 дек 2006, 18:27
kdv
Подскажите, кто знает, можно ли сделать это ролями.
www.ibase.ru/devinfo/sqlroles.htm

Добавлено: 06 дек 2006, 09:16
М_и_х_а_и_л
Все это я читал. Да, нигде не говорится, что член роли, у которой есть права на некий объект, могут давать на него права другой роли. Но почему тогда разрешена и выполняется такая конструкция:

GRANT ALL ON TABLE_AAA TO NEWROLE WITH GRANT OPTION;

Для чего? Если это потом не работает. Не понимаю.

Добавлено: 06 дек 2006, 10:00
kdv
парсер пропускает. ты бы посмотрел - в rdb$roles или в rdb$user_privileges после такой команды что-либо появляется?

Добавлено: 06 дек 2006, 10:25
М_и_х_а_и_л
В том-то и дело, что меняется.

Создаю 2 роли: NEW_ROLE1 и NEW_ROLE2.

дальше:

grant all on DICT to NEW_ROLE1;
grant all on DICT to NEW_ROLE2 with grant option;

тогда в RDB$USER_PRIVILEGES:
у NEW_ROLE1 для DICT RDB$GRANT_OPTION = 0,
а у NEW_ROLE2 RDB$GRANT_OPTION = 1

Т.е. вроде как роль NEW_ROLE2 может передавать права. На деле не получается.