В Oracle 10g, как я могу перечислить объекты схемы и привилегии, которые я могу им предоставить? - PullRequest
1 голос
/ 26 апреля 2011

Используя SQL, я хотел бы создать список определенных объектов схемы (3-4 из них, таблиц и представлений) и привилегий, которые я могу предоставить им как пользователь SYS или любой другой пользователь, в которого я могу войти как.

Ответы [ 2 ]

2 голосов
/ 23 июля 2011

Вот список предопределенных привилегий Oracle Object, доступных для различных типов объектов схемы. http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_9013.htm#i2077938

Чтобы пользователь мог предоставить привилегии объекта (любую из предварительно определенных привилегий объекта, упомянутых выше) другим пользователям, пользователь должен быть владельцем объекта или пользователю должны быть предоставлены привилегии объекта WITH GRANT. ВАРИАНТ. В противном случае пользователю должны быть предоставлены системные привилегии «GRANT ANY OBJECT PRIVILEGE».

Предположим, когда пользователь U1 входит в систему,

1) Получить список объектов, принадлежащих пользователю, которые могут быть предоставлены другим пользователям

SELECT object_name FROM user_objects;

2) Получить список разрешений на объекты, предоставленных пользователю U1, которые могут быть предоставлены другим пользователям с помощью U1.

SELECT grantor, grantee, table_name, owner 
  FROM user_tab_privs 
 WHERE grantee = 'U1' and grantable = 'YES'

3) Чтобы узнать, имеет ли U1 ГРАНТ ЛЮБУЮ ЛИЦУ ОБЪЕКТА, запрос

SELECT * FROM user_sys_privs where privilege = 'GRANT ANY OBJECT PRIVILEGE';
0 голосов
/ 26 апреля 2011

sys может предоставить что угодно.

, и сам объект будет получен из одного или нескольких объектов словаря данных оракула. ​​

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...