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
タイプにも変更できません。
ロールの変更のノート:
-
すでに使用可能なロールのユーザー・セッションには影響しません。
-
パスワードによって識別されるロールをアプリケーション・ロールに変更する場合(
USING
package
句を使用)、ロールに対応付けられたパスワード情報は失われます。次にロールが使用可能になるときから、新しい認証方式が使用されます。 -
ALTER
ANY
ROLE
システム権限を持つユーザーが、IDENTIFIED
GLOBALLY
ロールをIDENTIFIED
BY
password
、IDENTIFIED
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_manager
をhr.admin
パッケージを使用してアプリケーション・ロールに変更します。
ALTER ROLE dw_manager IDENTIFIED USING hr.admin;