Oracle DBA权限是否包含“CREATE ANY TABLE”角色?

时间:2009-08-14 07:29:15

标签: database oracle permissions database-permissions

我只需要在同一个DB下为用户创建表。 letz考虑3个架构。

Schema_1,Schema_2和Schema_3。

架构1具有DBA权限。

是否可以在Schema_1 ????

中的SChema_2或Schema_3中进行表格

或者我们需要赋予这个角色“CREATE ANY TABLE”吗?

3 个答案:

答案 0 :(得分:1)

DBA角色应该在典型安装中具有此权限 - 您可以通过以下方式查看具有此权限的其他角色/用户:

从dba_sys_privs中选择受让人,其中privilege ='CREATE ANY TABLE'

答案 1 :(得分:0)

正如@dpbradly所述,Oracle“开箱即用”的DBA角色权限包括“CREATE ANY TABLE”权限。您可以使用以下查询进行检查(并查看授予此角色的所有系统权限):

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

Oracle数据字典是你的朋友。

答案 2 :(得分:0)

好的,让我们清楚一点

  1. CREATE ANY TABLE是系统特权而非角色
  2. 您只需撰写GRANT DBA TO <USER_NAME> WITH ADMIN OPTION;即可授予任何用户DBA权限 话虽这么说,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。希望有所帮助。