Oracle 11g には、アプリに必要な関連テーブルを含む所有者スキーマがあります。
私の外部アプリケーションでは、上記のスキーマへの特定のテーブルに対する選択アクセス権を持つ必要がある別のユーザーを作成しようとしています。所有者スキーマ A と新しいスキーマ B を呼び出しましょう
create user B identified by blah;
grant connect to B;
元のスキーマ A にログインした後、次を実行しました (デモでは、すべてのテーブルを選択しています)
begin
FOR x IN (select * from user_tables)
LOOP
EXECUTE IMMEDIATE 'GRANT SELECT ON ' || x.table_name || ' TO some_role';
END LOOP;
end;
grant some_role to B;
ユーザーBとしてログインし、次のようなクエリを実行すると
select count(*) from A.some_table ;
できます。しかし、パブリック シノニムを作成せずに、ユーザー B としてログインしたときに次のように機能するように許可することは可能ですか?
select count(*) from some_table;
ありがとう