2015-08-11 2 views
0

Fast:GRANT Privilege В SQL

GRANT SELECT ON SYSTEM.* TO appadmin; 

Я хочу предоставить AppAdmin права SELECT, на всех таблицах базы данных

Я использую Oracle SQL, почему не работает мое заявление?

+0

Какая ошибка возникает у вас? – Mihai

+1

Вы хотите предоставить разрешение «AppAdmin» для запроса любой таблицы в базе данных? Любая таблица в схеме 'system'? Или любую таблицу словаря данных? Первое возможно, хотя привилегия очень эффективна и, как правило, ее следует избегать. Второе невозможно в одном заявлении и не имеет большого смысла, если вы действительно не используете другую схему. Последнее будет зависеть от привилегии SELECT ANY DICTIONARY или роли SELECT_CATALOG_ROLE. –

+0

У меня ошибка: _invalid имя таблицы в * _. Я хочу предоставить 'appadmin' привилегию выбора для любых таблиц базы данных. – Forrest

ответ

1

Использование ANY ключевого слова в отношении привилегии системы означает, что пользователь может выполнять привилегию на любых объектах, принадлежащих любого пользователем для SYS, за исключением. По умолчанию, если вам предоставлена ​​привилегия, вы не можете назначить свою привилегию другим. Вы не можете предоставлять или отменять эту привилегию никому другому.

Иногда вы хотите предоставить привилегии пользователям и предоставить им возможность предоставлять эти привилегии другим пользователям. Когда это так, мы включаем ключевое слово with admin в команде grant. Когда это ключевое слово используется, это позволит пользователю предоставить привилегию предоставить эту привилегию другим пользователям.

Ниже приведен пример использования ключевого слова option с ключом администратора.

GRANT SELECT ANY TABLE TO User; 
Смежные вопросы