Recently I faced following error message when I tried to insert data into a table in 12c.
Error:
SQLException occurred
SQLErrorCode=1950
SQLErrorMesg=ORA-01950: no privileges on tablespace 'XXX_BINSTORE'
Cause:
This is an expected behavior in Oracle Database 12c, even though user granted with RESOURCE role.
In Oracle Database 12c, RESOURCE role no longer grants UNLIMITED TABLESPACE system privilege by default.
Fix:
Grant UNLIMITED TABLESPACE system privilege to the user manually.
Else grant Unlimited quota on specific tablespace
Ex:
GRANT UNLIMITED TABLESPACE TO "lkakarla" ;
(or)
ALTER USER "lkakarla" QUOTA UNLIMITED ON XXX_BINSTORE;
Ref:
http://docs.oracle.com/database/121/DBSEG/release_changes.htm#DBSEG421
http://docs.oracle.com/database/121/DBSEG/authorization.htm#DBSEG4414
Queries to check Table space quota & Privileges granted to user:
SELECT * FROM DBA_TS_QUOTAS;
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE= 'lkakarla';
Error:
SQLException occurred
SQLErrorCode=1950
SQLErrorMesg=ORA-01950: no privileges on tablespace 'XXX_BINSTORE'
Cause:
This is an expected behavior in Oracle Database 12c, even though user granted with RESOURCE role.
In Oracle Database 12c, RESOURCE role no longer grants UNLIMITED TABLESPACE system privilege by default.
Fix:
Grant UNLIMITED TABLESPACE system privilege to the user manually.
Else grant Unlimited quota on specific tablespace
Ex:
GRANT UNLIMITED TABLESPACE TO "lkakarla" ;
(or)
ALTER USER "lkakarla" QUOTA UNLIMITED ON XXX_BINSTORE;
Ref:
http://docs.oracle.com/database/121/DBSEG/release_changes.htm#DBSEG421
http://docs.oracle.com/database/121/DBSEG/authorization.htm#DBSEG4414
Queries to check Table space quota & Privileges granted to user:
SELECT * FROM DBA_TS_QUOTAS;
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE= 'lkakarla';