2017-03-14 8 views

答えて

0

ユーザーは、多くの場合、単一のステップで権限を付与するために単一のステートメントを求めています。すべてのテーブルの上にGRANT SELECTを持っていないため

は複数の回避策がある

FOR x IN (SELECT * FROM user_tables) 
LOOP 
    EXECUTE IMMEDIATE 'GRANT SELECT ON ' || x.table_name || ' TO <<someone>>'; 
END LOOP; 

または

declare 
cursor c1 is select table_name from user_tables; 
cmd varchar2(200); 
begin 
for c in c1 loop 
cmd := 'GRANT SELECT ON '||c.table_name|| <<TO YOURUSERNAME>>; 
execute immediate cmd; 
end loop; 
end; 

Oracleは

GRANT SELECT ON <schema name> to <<user>> 
+0

感謝をスキーマ・レベルの助成金を実装することができます迅速な応答のためにこれを行うには、 "alter session set current_schema"を使用してスキーマに変更する必要がありますか? – user2728615

+0

はいそれを変更する必要があります:) – JPZ

+0

大変ありがとうございます – user2728615

関連する問題