一度に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;