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

Oracleの追加スキーマへのアクセスをユーザーに許可する正しい方法

    一度に1つずつ助成金オブジェクトを実行する必要があります。

    通常、これを行うには、次のようなスクリプトを使用します。

    SELECT 'GRANT ALL ON '||table_name||' TO BOB;'
    FROM   ALL_TABLES
    WHERE  OWNER = 'ALICE';
    

    他のdbオブジェクトについても同様です。

    付与を発​​行する必要のある各スキーマにパッケージを配置し、そこからすべての呼び出しを実行して、EXECUTEIMMEDIATEを介して各GRANTステートメントを呼び出すことができます。

    例:

       PROCEDURE GRANT_TABLES
       IS
       BEGIN
    
          FOR tab IN (SELECT table_name
                      FROM   all_tables
                      WHERE  owner = this_user) LOOP
             EXECUTE IMMEDIATE 'GRANT SELECT, INSERT, UPDATE, DELETE ON '||tab.table_name||' TO other_user';
          END LOOP;
       END;
    


    1. SQLiteの日付から年を引く

    2. NULLの複雑さ–パート3、欠落している標準機能とT-SQLの代替

    3. make_time()がPostgreSQLでどのように機能するか

    4. 不良RACノードを再作成する