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

Oracleが実行権限を付与

    パッケージ内では、(ロールを介して)間接的に付与された特権は削除されます。 基になるオブジェクトに対して必要な権限を付与する必要があります アカウントに直接;例:

    conn sys/[email protected] as sysdba
    create user A identified by A;
    grant connect, dba to A;
    conn A/[email protected]
    create table test_tab(pk number);
    
    conn sys/[email protected] as sysdba
    create user B identified by B;
    grant connect, dba to B;
    conn B/[email protected]
    select * from A.test_tab; -- this works
    
    create or replace procedure do_it as
    l_cnt pls_integer;
    begin
      select count(*) into l_cnt from A.test_tab; -- error on compile
    end;
    

    この例では、

    が必要です
    grant select on A.test_tab to B;
    

    それを機能させるために(動的SQLと静的SQLのどちらを使用しているかは関係ありません)。



    1. 繰り返し可能な読み取り分離レベル

    2. 複数のテーブルの結果を使用してデータベースにクエリを実行しますか?

    3. エラー関係が発生し続ける[TABLE]が存在しません

    4. レピュテーションに基づく権限の実装