1

ORACLE で、特定の1 つのスキーマのみに対するフル アクセス (変更、削除、選択、挿入、デバッグなど) を持つ新しいユーザーを作成する方法を教えてください。

4

2 に答える 2

5

できません。Oracle では、任意のスキーマ内の任意のオブジェクトへのアクセスを許可する強力な ANY 権限を持っていない限り、特定のオブジェクトに対して権限が付与されます。

これは非常に煩わしいものの 1 つですが、実際には非常に健全です。スキーマ内のすべてのオブジェクトに対する権限をまとめて付与するビジネス上の正当な理由はありません。また

  1. 2 番目のスキーマは、オブジェクトのサブセットに対する特権のサブセットのみを実際に必要とします。また
  2. 2 番目のスキーマはまったく不要です。

ここで、最初のインスタンスのサブセットが非常に大きなサブセットである可能性があります。しかし、怠惰は不十分なセキュリティ プラクティスの言い訳にはなりません。

できることは、データ ディクショナリから許可ステートメントを生成することです。

select 'grant select on '||table_name||' to B'
from   user_tables
/

(ユーザー A が実行するスクリプトの場合)。

これは、少なくともユーザー A によって追加された新しいオブジェクトが、追加のアクションなしでは自動的に B に伝播されないことを意味するため、スキーマに対する特権を付与するよりも優れています。

于 2010-03-04T13:50:30.323 に答える
2

PROXYユーザーを使用できます。これは、あるデータベースユーザーが別のデータベースユーザーとして接続できるのとまったく同じではありませんが、独自のパスワードを使用します。したがって、同じスキーマを使用して、それぞれが独自のパスワードを持つ複数のユーザーを持つことができます。

コードの例はここにあります。

于 2010-03-04T22:27:11.830 に答える