我试图在不使用“创建任何表”权限的情况下在不同的模式上创建表 . 我有一个应用程序用户/架构 .

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