2

SYSTEMとしてつながる役割を作りたいです。しかし、私には多くの役割を持つスキーマがたくさんあり、それらはすべてこの方法で作成されるため、作成された役割がSYSTEMに付与されることは望ましくありません(そうしないと、最終的に148の役割の制限を超えます)。

=>作成者の自動付与を無効にすることは可能ですか?

注意:今のところ、私はOracle 9iで作業していますが、まもなく11gにアップグレードされます。

4

2 に答える 2

2

私の答えには2つの部分があります:

  1. Oracleのロールは、キーリングのキーに少し似ています。キーリングにあるからといって、常にそれらを使用しているわけではありません。Oracleにはデフォルトのロールの概念があります。これらのロールは、セッションの作成時に自動的にアクティブ化されます。ユーザーが希望する場合は、他の役割を後で有効にすることができます。

    148の役割制限は、アクティブな役割に適用されます。たとえば、Oracle 10gの次のドキュメントリンクを参照してください:http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_6012.htm#sthref7227

    ロールがデフォルトになるのを無効にするには、ALTER USER ... DEFAULT ROLE...を使用します。http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_4003.htm#sthref5717を参照してください

  2. SYSTEMとして接続されている場合は、オブジェクト(ロールも含む)を作成しないでください。代わりに、通常のユーザーを使用してロールを作成し、そのユーザーのスキーマのオブジェクトに適したオブジェクトをロールに追加する必要があります。オブジェクトを所有し、それらのロールを持つ必要があるユーザーにCREATE ROLEシステム権限を付与する必要がありますが、それはすべてOracleセキュリティモデルの一部です。

于 2012-10-04T07:53:09.147 に答える
1

1人のユーザーに対して一度に有効にできるユーザー定義の役割の最大数は148です。

必要な数のロールを作成できます。一度にすべてを有効にしないでください。

ロール(ユーザーロール以外)を作成すると、暗黙的に付与され、デフォルトのロールとして追加されます。MAX_ENABLED_ROLESを超える場合、ログイン時にエラーが発生します。ユーザーのデフォルトの役割をMAX_ENABLED_ROLES未満に変更することで、このエラーを回避できます。したがって、ユーザーロールを作成する前に、SYSおよびSYSTEMのDEFAULTROLE設定を変更する必要があります。

http://docs.oracle.com/cd/B10500_01/server.920/a96521/privs.htm#15539

例えば

ALTER USER SYSTEM DEFAULT ROLE DBA
于 2012-10-04T07:51:19.483 に答える