sql >> Databasteknik >  >> RDS >> Oracle

Få ORA-01031:otillräckliga privilegier när du frågar efter en tabell istället för ORA-00942:tabell eller vy finns inte

Du kan få ORA-01031: insufficient privileges istället för ORA-00942: table or view does not exist när du har minst ett privilegium på bordet, men inte det nödvändiga privilegiet.

Skapa scheman

SQL> create user schemaA identified by schemaA;

User created.

SQL> create user schemaB identified by schemaB;

User created.

SQL> create user test_user identified by test_user;

User created.

SQL> grant connect to test_user;

Grant succeeded.

Skapa objekt och privilegier

Det är ovanligt, men möjligt, att ge ett schema ett privilegium som DELETE utan att ge SELECT.

SQL> create table schemaA.table1(a number);

Table created.

SQL> create table schemaB.table2(a number);

Table created.

SQL> grant delete on schemaB.table2 to test_user;

Grant succeeded.

Anslut som TEST_USER och försök fråga tabellerna

Detta visar att ha några privilegiet på bordet ändrar felmeddelandet.

SQL> select * from schemaA.table1;
select * from schemaA.table1
                      *
ERROR at line 1:
ORA-00942: table or view does not exist


SQL> select * from schemaB.table2;
select * from schemaB.table2
                      *
ERROR at line 1:
ORA-01031: insufficient privileges


SQL>


  1. Räls ser upp med serialiserad array

  2. Formatera siffror genom att fylla med inledande nollor i SQL Server

  3. Få sista dagen i föregående månad i Oracle Function

  4. Välja MySql-tabelldata till en array