我正在尝试在不使用“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