sql >> Database >  >> RDS >> Oracle

ORA-01031 verkrijgen:onvoldoende rechten bij het opvragen van een tabel in plaats van ORA-00942:tabel of weergave bestaat niet

Mogelijk krijgt u ORA-01031: insufficient privileges in plaats van ORA-00942: table or view does not exist wanneer je ten minste één privilege op tafel hebt, maar niet het benodigde privilege.

Schema's maken

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.

Objecten en rechten maken

Het is ongebruikelijk, maar mogelijk om een ​​schema een privilege als DELETE toe te kennen zonder SELECT toe te kennen.

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.

Verbind als TEST_USER en probeer de tabellen te doorzoeken

Dit laat zien dat het hebben van sommige privilege op de tafel verandert de foutmelding.

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. MySQL – MariaDB – De allereerste opgeslagen procedure schrijven

  2. Escape SQL LIKE-waarde voor Postgres met psycopg2

  3. mysql verschil in indexgebruik tussen MyISAM en InnoDB

  4. Hoe LIKE te gebruiken in SQL