在不同的架构中创建表

时间:2016-02-08 21:54:00

标签: sql oracle roles privileges

我正在尝试在不使用“create any table”权限的情况下在不同的模式上创建表。我有一个应用程序用户/架构。

TABLESPACE_NAME                    USEDMB      MAXMB
------------------------------ ---------- ----------
APPLICATION                         .8125         50

应用程序在表空间上有配额。用户没有任何表空间的配额,用户的默认表空间是应用程序。

应用程序架构具有现有表。

TABLE_NAME
------------------------------
CUSTOMERS

用户可以创建会话并属于角色app_dev。

GRANTEE         OWNER           TABLE_NAME           PRIVILEGE
--------------- --------------- -------------------- ---------------
APP_DEV         APPLICATION     CUSTOMERS            DELETE
APP_DEV         APPLICATION     CUSTOMERS            SELECT


GRANTEE         PRIVILEGE       ADMIN_OPT
--------------- --------------- ---------
APP_DEV         CREATE TABLE    NO

GRANTEE         GRANTED_ROLE
--------------- ------------------
USER            APP_DEV

现在我正在尝试使用用户“user”在应用程序架构上创建一个表,但是我收到错误:

SQL> create table application.test as select * from application.customers;
create table application.test as select * from application.customers
                                                           *
ERROR at line 1:
ORA-01031: insufficient privileges

我知道问题可以通过授予“创建任何表”来解决,但这是一个安全风险。此外,在应用程序模式上创建过程并向用户授予执行不会有帮助,因为用户将创建不同类型的表并且结构未知。

还有其他方法吗?

谢谢, MJ

0 个答案:

没有答案