Grant Option для ролей

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
М_и_х_а_и_л
Сообщения: 4
Зарегистрирован: 23 авг 2006, 14:58

Grant Option для ролей

Сообщение М_и_х_а_и_л » 05 дек 2006, 15:51

Добрый день,

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

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

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

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

Сообщение kdv » 05 дек 2006, 18:27

Подскажите, кто знает, можно ли сделать это ролями.
www.ibase.ru/devinfo/sqlroles.htm

М_и_х_а_и_л
Сообщения: 4
Зарегистрирован: 23 авг 2006, 14:58

Сообщение М_и_х_а_и_л » 06 дек 2006, 09:16

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

GRANT ALL ON TABLE_AAA TO NEWROLE WITH GRANT OPTION;

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

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

Сообщение kdv » 06 дек 2006, 10:00

парсер пропускает. ты бы посмотрел - в rdb$roles или в rdb$user_privileges после такой команды что-либо появляется?

М_и_х_а_и_л
Сообщения: 4
Зарегистрирован: 23 авг 2006, 14:58

Сообщение М_и_х_а_и_л » 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 может передавать права. На деле не получается.

Ответить