前提条件
ロールに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
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;