sql >> データベース >  >> RDS >> Oracle

ORA-01031の取得:ORA-00942の代わりに表のクエリ中に権限が不十分です:表またはビューが存在しません

    ORA-01031: insufficient privilegesを取得する可能性があります ORA-00942: table or view does not exist テーブルに対して少なくとも1つの特権を持っているが、必要な特権を持っていない場合。

    スキーマを作成する

    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.
    

    オブジェクトと権限を作成する

    SELECTを付与せずに、スキーマにDELETEなどの特権を付与することはまれですが可能です。

    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. グループごとに<whatever>が最も高い/最も小さいレコードを取得します

    2. SQLServer2017バックアップ-1

    3. MySQLでテーブルをピボットする方法

    4. Hibernateを使用して配列列を保存または取得する方法