Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Abrufen von ORA-01031:unzureichende Berechtigungen beim Abfragen einer Tabelle anstelle von ORA-00942:Tabelle oder Ansicht existiert nicht

Sie erhalten möglicherweise ORA-01031: insufficient privileges statt ORA-00942: table or view does not exist wenn Sie mindestens eine Berechtigung für die Tabelle haben, aber nicht die erforderliche Berechtigung.

Schemata erstellen

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.

Objekte und Berechtigungen erstellen

Es ist ungewöhnlich, aber möglich, einem Schema ein Privileg wie DELETE zu erteilen, ohne SELECT zu erteilen.

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.

Verbinden Sie sich als TEST_USER und versuchen Sie, die Tabellen abzufragen

Dies zeigt, dass etwas vorhanden ist Berechtigung für die Tabelle ändert die Fehlermeldung.

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>