我有一个用户负责在自己的模式之外的其他模式上部署 DDL。
该用户可以在这些模式上创建一个表,它还可以在这些模式上创建序列。
但是当我尝试在这些模式上创建一个带有 GENERATED IDENTITY 列的表时,
用户会遇到一个ORA-01031: privileges insuffisants
当这个用户在自己的模式上尝试相同的创建表时,他可以正确地做到这一点。
该用户被授予以下权限:
GRANT CREATE ANY SEQUENCE TO ddl_role;
GRANT CREATE ANY TABLE TO ddl_role;
这是执行的查询示例:
CREATE TABLE "sch1"."tab1"
( "col1" NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY MINVALUE 1 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE NOKEEP NOSCALE)
TABLESPACE "sch1_data";
以下查询有效:
CREATE TABLE "sch1"."tab1"
( "col1" NUMBER )
TABLESPACE "sch1_data";
CREATE SEQUENCE "sch1"."seq1";
参考:
https ://oracle-base.com/articles/12c/identity-columns-in-oracle-12cr1