- 締切済み
Oracle 10g 権限付与
はじめまして Oracle10gで、今度新しいデータベースが始動します。 問題なのが、管理者向けに発行するIDと、一般ユーザ向けに発行するIDの違いです。 管理者には参照・更新、参照権限付与・更新権限付与。 一般ユーザには参照、更新(それぞれテーブルごとに申請を出してもらう)、管理者から権限をもらう。 という仕組みになりました。 月に3度から4度、新しいテーブルができます。そのたびにgrantオプション付で管理者に権限付与するのも大変です。 select anyでは、テーブルごとの切り分けができません。 Oracle10gには詳しくないのですが(そもそもOracleにそんなに詳しくないのですが)、何かOracle10gの新機能など、使えそうなものはないでしょうか。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- lond_nag
- ベストアンサー率57% (4/7)
ロール(任意の権限の集まり)の使い方で正解だと思いますが・・・ 具体的には、例えば「testrole1」「testrole2」という名前のロールを作って create role testrole1; create role testrole2; 「testrole1」をuser1,user3に、「testrole2」をuser2に付与して grant testrole1 to user1; grant testrole2 to user2; grant testrole1 to user3; 新規に表を作成したら、ロールに対して権限を付与すれば、そのロールを付与されているユーザは一括で権限が与えられる。 grant select on user0.atable to testrole1; >>この1文でtestrole1を持っているuser1とuser3だけ、user0.atableテーブルのSELECT権限を得る。 但し、ロール経由ではなく直接権限を与えられないと許可されない動作もあります。 ストアドメンバなどのEXECUTE権限がこれに当たったはずで注意が必要です。 詳しくはORACLEマニュアルのSQLリファレンス、セキュリティガイド辺りのロールに関する記述を参照してください。
- dyna_1550
- ベストアンサー率34% (122/353)
ロールを作ればよい? そんな簡単な答えじゃないですよね・・・・
お礼
ありがとうございます。 結局、管理者にgrant any object privilegeを付与することで決まりました。 ご助力感謝いたします。