2009-08-14 4 views
0

Мне просто нужно создать таблицу от пользователя к любому пользователю под одной и той же БД. letz считать 3 схемы.Является ли Oracle DBA Privilege включенной роль «CREATE ANY TABLE»?

Schema_1, Schema_2 и Schema_3.

схема 1 имела привилегию DBA.

Возможно ли использовать таблицу SChema_2 или Schema_3 из Schema_1 ????

или мы должны предоставить эту роль «СОЗДАТЬ ЛЮБОЙ ТАБЛИЦ» также?

ответ

1

Роль DBA должен иметь эту привилегию в обычной установке - вы можете увидеть другие роли/пользователей, которые имеют это путем:

выберите грантополучателей из dba_sys_privs где привилегия = «CREATE ANY TABLE»

0

Как указано в @dpbradly, привилегии Oracle «из коробки» для роли DBA включают в себя привилегию «CREATE ANY TABLE». Вы можете проверить это с помощью следующего запроса (и увидеть все системные привилегии, предоставленные этой роли, а):

SELECT * FROM role_sys_privs WHERE role = 'DBA' ORDER BY PRIVILEGE; 

Словарь данных Oracle является вашим другом.

0

Ok позволяет сделать некоторые вещи ясно

  1. CREATE ANY TABLE является система привилегий не роль
  2. вы можете предоставить какие-либо привилегии пользователя DBA просто писать GRANT DBA TO <USER_NAME> WITH ADMIN OPTION; Это, как говорится, schema_1 сможет создать таблицу на любой пользователь, как он есть CREATE ANY TABLE привилегия

    create table hr.dbaMade_tab (id number, name varchar2(20) );

    Если вы schema_1 предоставили CREATE ANY TABLE, тогда schema_2 и schema_3 смогут создавать таблицы в любой таблице. Не предоставляйте роль DBA никому. Создайте новую роль и дайте ей необходимые привилегии и предоставите эту роль другим пользователям. В вашем случае schema_2 и schema_3. Надеюсь, это поможет.