Search code examples
oraclecreate-tableprivilegesany

Difference between CREATE TABLE and CREATE ANY TABLE privileges


I don't understand the difference between these two privileges.

I found these two explanations but it's not helping me.

CREATE TABLE -> Enables a user to create a table owned by that user.

CREATE ANY TABLE -> Enables a user to create a table owned by any user in the database.

If a user creates a table it's going to be owned by the user that created it right? I don't get it.


Solution

  • The CREATE TABLE privilege lets you create a table in your own schema. So user scott can do:

    create table scott.mytable ( id number );
    

    The CREATE ANY TABLE privilege lets you create a table in any schema in the database. So again, user scott can do:

    create table hr.employees ( id number );
    

    That is, make a table that belongs to someone else.