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