Grant rights to create a table with an identity column on another schema
In order to create a table using the GENERATED BY... mechanism you need also the SELECT ANY SEQUENCE privilege, in addition to CREATE ANY SEQUENCE.

I don't know why that is the case, since you are able to create a standalone sequence. I suspect it has to do with setting up the link between the table and the sequence.

Here is an example:

SQL&gt; connect pg_test/pg_test@graphdb
Connected.

SQL&gt; select privilege from user_sys_privs;

PRIVILEGE
-------------------------------------------------------------------------------
CREATE ANY TABLE
CREATE SESSION
CREATE ANY SEQUENCE
SELECT ANY SEQUENCE
ALTER SESSION

5 rows selected.

SQL&gt; create table scott.t1 (i number GENERATED BY DEFAULT ON NULL AS IDENTITY);
Table created.


And in the other schema:

SQL&gt; connect scott/tiger@graphdb
Connected.

SQL&gt; select * from cat;

TABLE_NAME                     TABLE_TYPE
------------------------------ ---------------------------------
...
T1                             TABLE
ISEQ$$_81682                   SEQUENCE

50 rows selected.


If I revoke the SELECT ANY SEQUENCE privilege from user pg_test then the table creation will fail.