Add(string)

このメソッドは、ロールをロール・リストに追加し、新しく作成された接続または接続プールからの接続に対してロールを設定します。

宣言

// C#
public void Add(string Role);

パラメータ

Role - 接続に設定されるロール名。

例外

ArgumentNullException - ロール名がNullとして指定された場合にスローされます。

ArgumentException - ロール名が空の文字列として指定された場合にスローされます。

ArgumentException - 大/小文字が区別されるロール名が二重引用符で正しく囲まれていない場合にスローされます。

InvalidOperationException - 接続がすでにオープンされている場合にスローされます。

備考

OracleRoleCollectionオブジェクトにロールを追加する前に、ユーザーにデータベース・ロールがすでに付与されている必要があります。そうでない場合は、ロールが付与されていないか、存在しないことを示すエラーが発生します。ODP.NETコレクションに追加されていないデータベース・ロールは、コレクションに追加されたロールがない場合を除き、セッションでは無効になります。この場合、データベース・セッションではデフォルトのロールが有効になります。

既存の接続の有効なロールを変更するには、接続をクローズし、接続インスタンスに関連付けられているOracleRoleCollectionインスタンスを変更して、接続を再オープンします。

パスワード付きのロールを除き、付与されたすべてのロールを有効にするには、OracleRoleCollectionインスタンスにALLを追加します。デフォルトのロールを含めたすべてのロールを無効にするには、OracleRoleCollectionインスタンスにNONEを追加します。ALLおよびNONEは、ロール名の予約キーワードです。ALLまたはNONEを使用する場合は、他のロール名がコレクションに追加されていないことを確認してください。そうでない場合は、エラーが発生します。

ALL予約キーワードの挿入後に、またはOracleRoleCollection.UseAllExceptプロパティがtrueに設定されている場合にセッションが作成されると、データベースによってデフォルト・ロールが変更されたとしても、OracleRoleCollection自体が変更されるまで、ODP.NETでは、セッションの有効なロールは変更されません。これは、プールにチェックインされた接続に対しても当てはまります。

特定のコレクションを除き、以前に付与されたすべてのユーザー・ロールを有効にするには、OracleRoleCollection.UseAllExcepttrueに設定します。これにより、OracleConnectionオブジェクトに関連付けられているOracleRoleCollectionオブジェクトに追加されたロールを除くすべてのロールが有効になります。このプロパティをTrueに設定すると、接続ではパスワードベースのロールは有効になりません。OracleRoleCollection.UseAllExcepttrueで、OracleRoleCollectionオブジェクトに何も追加されていない場合、ODP.NETは接続のどのロールも有効または無効にしません。有効になっているロールに関する接続状態は変更されません。

ノート:

DRCP接続の場合は、ランダムなセッションがサーバー・プールからチェックアウトされ、それによりそのセッションで任意の一連のロールを有効にできるため、今後のセッションでパスワード・ベースでないロールをすべて有効にする必要がある場合は、OracleConnectionオブジェクトに関連付けられているOracleRoleCollectionオブジェクトにALLキーワードを追加する必要があります。