Oracle
 sql >> база данни >  >> RDS >> Oracle

Получаване на ORA-01031:недостатъчни привилегии при запитване към таблица вместо ORA-00942:таблица или изглед не съществува

Може да получите ORA-01031: insufficient privileges вместо ORA-00942: table or view does not exist когато имате поне една привилегия на масата, но не и необходимата привилегия.

Създаване на схеми

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.

Създаване на обекти и привилегии

Необичайно е, но е възможно да се предостави на схема привилегия като DELETE, без да се предоставя 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.

Свържете се като TEST_USER и опитайте да направите запитване към таблиците

Това показва, че има някои привилегията на таблицата променя съобщението за грешка.

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. Проверете дали два избора са еквивалентни

  2. Разлика между две дати в sql

  3. java.sql.SQLException:Слушателят отказа връзката със следната грешка:ORA-12519, TNS:не е намерен подходящ манипулатор на услуга

  4. NLS_NUMERIC_CHARACTERS настройка за десетичен знак

  5. В една SQL заявка колко индекса може да използва заявката от една таблица?