sql >> Base de Datos >  >> RDS >> Oracle

Obtener ORA-01031:privilegios insuficientes al consultar una tabla en lugar de ORA-00942:la tabla o vista no existe

Puede obtener ORA-01031: insufficient privileges en lugar de ORA-00942: table or view does not exist cuando tiene al menos un privilegio en la mesa, pero no el privilegio necesario.

Crear esquemas

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.

Crear objetos y privilegios

Es inusual, pero posible, otorgar a un esquema un privilegio como DELETE sin otorgar 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.

Conéctese como TEST_USER e intente consultar las tablas

Esto demuestra que tener algunos privilegio en la tabla cambia el mensaje de error.

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>