Skip to Main Content
  • Questions
  • Resource Role and "Unlimited Tablespace" privilege

Breadcrumb

Question and Answer

Tom Kyte

Thanks for the question, John.

Asked: April 22, 2013 - 9:13 pm UTC

Last updated: April 23, 2013 - 5:15 pm UTC

Version: 11.2.0.3

Viewed 10K+ times! This question is

You Asked

Tom,

I have a question regarding the RESOURCE built-in role. It seems that the privilege 'UNLIMITED TABLESPACE' is given to a user when I grant them the 'RESOURCE' role, but I don't see 'UNLIMITED TABLESPACE' as one of the privilges.

select privilege from dba_sys_privs where grantee = 'RESOURCE';

PRIVILEGE
----------------------------------------
CREATE TRIGGER
CREATE SEQUENCE
CREATE TYPE
CREATE PROCEDURE
CREATE CLUSTER
CREATE OPERATOR
CREATE INDEXTYPE
CREATE TABLE


Please explain why 'UNLIMITED TABLESPACE' is granted when 'RESOURCE' is granted to the user.
'UNLIMITED TABLESPACE' is a system privilege, right?


and Tom said...

It is hard coded into the definition of resource. It is "special"

We would recommend you do not use connect or resource, they are there for legacy reasons. It would be best to create your own roles for development.

Rating

  (1 rating)

Is this answer out of date? If it is, please let us know via a Comment

Comments

Haroon, September 02, 2014 - 4:48 pm UTC

This implicit privilege of UNLIMITED TABLESPACE under RESOURCE role seems to fixed in Oracle 12.1.0.1.

CREATE USER haroon_tst
IDENTIFIED BY haroon_tst
DEFAULT TABLESPACE i2tm_data
TEMPORARY TABLESPACE temp;

GRANT CONNECT, RESOURCE TO haroon_tst;
REVOKE UNLIMITED TABLESPACE FROM haroon_tst;

>>Error at line 7
ORA-01952: system privileges not granted to 'HAROON_TST'

Thanks,
Haroon

More to Explore

PL/SQL demos

Check out more PL/SQL tutorials on our LiveSQL tool.

PL/SQL docs

PL/SQL reference manual from the Oracle documentation library