Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Pobieranie ORA-01031:niewystarczające uprawnienia podczas odpytywania tabeli zamiast ORA-00942:tabela lub widok nie istnieje

Możesz otrzymać ORA-01031: insufficient privileges zamiast ORA-00942: table or view does not exist gdy masz co najmniej jeden przywilej na stole, ale nie jest to konieczne.

Utwórz schematy

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.

Tworzenie obiektów i uprawnień

Niezwykłe, ale możliwe jest nadanie schematowi uprawnienia takiego jak DELETE bez nadawania 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.

Połącz się jako TEST_USER i spróbuj wysłać zapytanie do tabel

To pokazuje, że posiadanie trochę przywileje w tabeli zmieniają komunikat o błędzie.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak korzystać z rownum

  2. Dziennik zapytań Oracle XE

  3. Jak uzyskać szerokość i długość z sdo_geometry w Oracle?

  4. JDBC Cienki ciąg połączenia w Oracle używa zarówno dwukropka, jak i ukośnika

  5. PL/SQL — użyj zmiennej listy w miejscu gdzie w klauzuli