ALTER ROLE
目的
ALTER ROLE文を使用すると、ロールを使用可能にするために必要な認可を変更できます。
関連項目:
-
ロールの作成の詳細は、「CREATE ROLE」を参照してください。
-
セッションのロールを使用可能または使用禁止にする方法については、「SET ROLE」を参照してください。
前提条件
ロールにADMIN OPTIONが付与されている必要があります。付与されていない場合は、ALTER ANY ROLEシステム権限が必要です。
ロールをIDENTIFIED GLOBALLYに変更する前に、次の作業が必要です。
-
ロールに対して外部的に識別されたロール権限をすべて取り消します。
-
すべてのユーザー、ロールおよび
PUBLICからロールの付与を取り消します。
この規則の唯一の例外として、現在ロールを変更しているユーザーからはそのロールを取り消さないでください。
CONTAINER句を指定する場合は、マルチテナント・コンテナ・データベース(CDB)に接続している必要があります。CONTAINER = ALLを指定する場合は、現在のコンテナがルートである必要があります。CONTAINER = CURRENTを指定するには、現在のコンテナがプラガブル・データベース(PDB)である必要があります。
構文
alter_role::=
セマンティクス
ALTER ROLE文のキーワード、パラメータおよび句の意味は、すべてCREATE ROLE文のキーワード、パラメータおよび句と同じです。
中央管理されているユーザーを使用している場合、GLOBALLYをASとともに指定して、ディレクトリ・グループをグローバル・ロールにマップします。ディレクトリ・グループはそのドメイン名によって識別されます。
ロールの変更の制限事項
NOT IDENTIFIEDロールが別のロールに付与されている場合、このロールはいずれのIDENTIFIEDタイプにも変更できません。
ロールの変更のノート:
-
すでに使用可能なロールのユーザー・セッションには影響しません。
-
パスワードによって識別されるロールをアプリケーション・ロールに変更する場合(
USINGpackage句を使用)、ロールに対応付けられたパスワード情報は失われます。次にロールが使用可能になるときから、新しい認証方式が使用されます。 -
ALTERANYROLEシステム権限を持つユーザーが、IDENTIFIEDGLOBALLYロールをIDENTIFIEDBYpassword、IDENTIFIEDEXTERNALLYまたはNOTIDENTIFIEDに変更すると、非グローバルなロールを作成した場合と同様に、そのユーザーに変更されたロールがADMINOPTION付きで付与されます。
詳細は、「CREATE ROLE」および次の例を参照してください。
例
ロールの識別の変更: 例
次の文は、ロールwarehouse_user (「ロールの作成: 例」で作成)をNOT IDENTIFIEDに変更します。
ALTER ROLE warehouse_user NOT IDENTIFIED;
ロールのパスワードの変更: 例
次の文は、dw_managerロール(「ロールの作成: 例」で作成)のパスワードをdataに変更します。
ALTER ROLE dw_manager IDENTIFIED BY data;
パスワードの変更後、ロールdw_managerが付与されているユーザーは、新しいパスワードdataを使用してこのロールを使用可能にする必要があります。
アプリケーション・ロール: 例
次の例は、ロールdw_managerをhr.adminパッケージを使用してアプリケーション・ロールに変更します。
ALTER ROLE dw_manager IDENTIFIED USING hr.admin;
