0

我只需要在同一个数据库下创建从用户到任何用户的表。让我们考虑 3 个模式。

Schema_1、Schema_2 和 Schema_3。

模式 1 具有 DBA 特权。

是否可以从 Schema_1 中的 Schema_2 或 Schema_3 中表??

或者我们也需要给这个角色“创建任何表”??

4

3 回答 3

1

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

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

于 2009-08-14T12:24:29.023 回答
0

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

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

Oracle 数据字典是您的朋友。

于 2009-08-14T16:14:49.043 回答
0

好的,让我们把一些事情弄清楚

  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。希望有帮助。

于 2016-11-12T00:24:54.590 回答