23

私は3つのテーブルtable1、table2、table3を持っています。これらのテーブルをユーザー user1 に付与 (たとえば選択) したいと考えています。

私は次のように付与できることを知っています:

grant select on table1 to user1;
grant select on table2 to user1;
grant select on table3 to user1;

1 つのクエリのみを使用して、user1 に 3 つのテーブルを許可できますか?

ありがとう

4

5 に答える 5

24

いいえ。ドキュメントに示されているように、一度に 1 つのオブジェクトへのアクセスしか許可できません。

于 2013-03-16T16:39:32.813 に答える
9

動的クエリを使用して実行できます。pl-sql または sqlplus で次のスクリプトを実行するだけです。

select 'grant select on user_name_owner.'||table_name|| 'to user_name1 ;' from dba_tables t where t.owner='user_name_owner'

結果を実行します。

于 2013-11-12T08:46:24.397 に答える
5

私の提案は...オラクルで役割を作成する

create role <role_name>;

次に、を使用してその役割に特権を割り当てます

grant select on <table_name> to <role_name>;

次に、を使用して、そのロールを介してその特権のグループを任意のユーザーに割り当てます。

grant  <role_name> to <user_name>...;
于 2013-03-16T18:00:48.710 に答える
0

これは私のOracleデータベースでうまくいきました:

SELECT   'GRANT SELECT, insert, update, delete ON mySchema.' || TABLE_NAME || ' to myUser;'
FROM     user_tables
where table_name like 'myTblPrefix%'

次に、結果をコピーしてエディターに貼り付け、スクリプトのように実行します。

余分なコピー/貼り付け手順が必要ない場合は、スクリプトを作成し、「即時実行」を使用して生成された SQL を実行することもできます。

于 2017-12-21T15:53:58.377 に答える