ORA-01950: no privileges on tablespace 'USERS'

The error ORA-01950: no privileges on tablespace 'USERS' means that the user does not have quota on the USERS tablespace to create tables, indexes, or store data.

This is very common when creating a new user in Oracle.


How to Fix ORA-01950

You must give the user quota on the tablespace, or grant unlimited quota.


Option 1: Give Specific Quota (Recommended)

ALTER USER your_user QUOTA 200M ON users;

This allows the user to use 200 MB in the USERS tablespace.

You can increase quota anytime.


Option 2: Give Unlimited Quota on USERS Tablespace

ALTER USER your_user QUOTA UNLIMITED ON users;

This allows unlimited space usage only in USERS tablespace
(not dangerous like UNLIMITED TABLESPACE system privilege).


Option 3: Change User’s Default Tablespace

If USERS tablespace is restricted, change default tablespace to another one:

ALTER USER your_user DEFAULT TABLESPACE example;
ALTER USER your_user QUOTA UNLIMITED ON example;

Option 4: Check Current Quotas

SELECT tablespace_name, max_bytes
FROM dba_ts_quotas
WHERE username = 'YOUR_USER';

✔ Why the Error Occurs

It appears when:

  • User tries to create a table
  • User tries to insert data
  • User tries to create an index
  • And they have no quota on the tablespace where data must be stored

Oracle blocks the operation with ORA-01950.


📌 Example

If you created a user like this:

CREATE USER test IDENTIFIED BY test;
GRANT CREATE SESSION, CREATE TABLE TO test;

Then try to create a table:

CREATE TABLE a (id NUMBER);

You will get:

ORA-01950: no privileges on tablespace 'USERS'

Solution:

ALTER USER test QUOTA UNLIMITED ON users;

Post a Comment

And that's all there is to it!

If anyone has any other questions or requests for future How To posts, you can either ask them in the comments or email me. Please don't feel shy at all!

I'm certainly not an expert, but I'll try my hardest to explain what I do know and research what I don't know.

Previous Post Next Post