用途
データベースでは、ユーザー・ログイン時に、ユーザーに明示的に付与されたすべての権限およびユーザーのすべてのデフォルトのロールが使用可能になります。セッション中、ユーザーまたはアプリケーションは、SET
ROLE
文を使用して、そのセッションに対してロールを何度でも使用可能または使用禁止にできます。
148を超えるユーザー定義のロールを一度に使用可能にできません。
注意:
|
SESSION_ROLES
データ・ディクショナリ・ビューを問い合せると、現在使用可能なロールを参照できます。
関連項目:
|
セマンティクス
role
現行のセッションで使用可能にするロールを1つ以上指定します。指定されていないすべてのロールは、現行のセッションの存続期間中、または現行のセッションで他のSET
ROLE
文が発行されるまで使用禁止になります。
IDENTIFIED
BY
password
句では、ロールに対するパスワードを指定します。ロールにパスワードが設定されている場合は、指定する必要があります。
ロールの設定の制限事項: グローバルに識別されるロールは指定できません。グローバル・ロールは、ログイン時にデフォルトで使用可能になり、後で再度使用可能にすることはできません。
ALL
を指定すると、現行のセッションに対して付与されているすべてのロールを使用可能にできます。ただし、EXCEPT
句に任意に指定されているロールは除きます。
EXCEPT
句に指定するロールは、ユーザーに直接付与されている必要があります。他のロールによってユーザーに付与されたものは無効です。
直接付与されているロール、および他のロールを介してユーザーに付与されているロールをEXCEPT
句に指定した場合、そのロールの付与先のロールにより、そのロールは使用可能のままになります。
ALL句の制限事項: ALL
句には、次の制限事項があります。
パスワード付きのロールを直接付与された場合は、この句を指定できません。含めた場合、ORA-01979エラーが発生します。
この句を使用して、保護アプリケーション・ロールを使用可能にすることはできません。保護アプリケーション・ロールとは、認可済パッケージのみを使用するアプリケーションによって使用可能になるロールです。保護アプリケーション・ロールの作成の詳細は『Oracle Databaseセキュリティ・ガイド』、チュートリアルは『Oracle Database 2日でセキュリティ・ガイド』を参照してください。
NONE
を指定すると、現行のセッションで、DEFAULT
ロールを含むすべてのロールを使用禁止にできます。