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文のキーワード、パラメータおよび句の意味は、すべてCREATE ROLE文のキーワード、パラメータおよび句と同じです。

ロールの変更の制限事項

NOT IDENTIFIEDロールが別のロールに付与されている場合、このロールはいずれのIDENTIFIEDタイプにも変更できません。

ロールの変更のノート

ロールを変更するときには、次のノートが適用されます。

  • すでに使用可能なロールのユーザー・セッションには影響しません。

  • パスワードによって識別されるロールをアプリケーション・ロールに変更する場合(USING package句を使用)、ロールに対応付けられたパスワード情報は失われます。次にロールが使用可能になるときから、新しい認証方式が使用されます。

  • ALTER ANY ROLEシステム権限を持つユーザーが、IDENTIFIED GLOBALLYロールをIDENTIFIED BY passwordIDENTIFIED EXTERNALLYまたはNOT IDENTIFIEDに変更すると、非グローバルなロールを作成した場合と同様に、そのユーザーに変更されたロールがADMIN OPTION付きで付与されます。

詳細は、「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_managerhr.adminパッケージを使用してアプリケーション・ロールに変更します。

ALTER ROLE dw_manager IDENTIFIED USING hr.admin;