用途
ALTER
USER
を使用すると、次の操作を実行できます。
データベース・ユーザーの認証またはデータベース・リソースの特性を変更します。
プロキシ・サーバーが認証なしでクライアントとして接続することを許可します。
Oracle Automatic Storage Management (Oracle ASM)クラスタで、ユーザーのパスワードを現在のノードのOracle ASMインスタンスに対してローカルなパスワード・ファイルで変更します。
関連項目: ユーザーの認証方式の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。 |
前提条件
通常、ALTER
USER
システム権限が必要です。ただし、現行ユーザーはこの権限がない場合でも自分のパスワードは変更できます。
Oracle ASMインスタンス・パスワード・ファイルで自分以外のユーザーのパスワードを変更するには、AS
SYSASM
として認証されている必要があります。
構文
alter_user::=
(size_clause::=を参照)
proxy_clause ::=
セマンティクス
この項で説明するキーワード、パラメータおよび句は、ALTER
USER
独自のものと、CREATE
USER
にもあるが、セマンティクスが異なるものがあります。その他のキーワード、パラメータおよび句には、CREATE
USER
文と同じ意味があります。
注意: ユーザー名およびパスワードは、ご使用のプラットフォームに応じて、ASCIIまたはEBCDIC文字のみでエンコードすることをお薦めします。 |
関連項目: キーワードおよびパラメータについては、「CREATE USER」を参照してください。ユーザーにデータベース・リソースへの制限を割り当てる方法については、「CREATE PROFILE」を参照してください。 |
IDENTIFIED句
BY password BY
password
を指定すると、ユーザーの新しいパスワードを指定できます。パスワードは、大/小文字が区別されます。この後に、ユーザーをデータベースに接続するために使用されるCONNECT
文字列は、このALTER
USER
文で使用されているものと同じ文字(大文字、小文字または混在)を使用してパスワードを指定する必要があります。パスワードには、データベース・キャラクタ・セットから、シングルバイト文字、マルチバイト文字または両方を含めることができます。
注意: 異なるタイムスタンプで特定のパスワードを再設定する必要があります。1秒以内に1つのパスワードを複数回再設定した場合(たとえば、スクリプトを使用して一連のパスワードの設定を繰り返した場合)、データベースはパスワードが再利用できないというエラー・メッセージを戻すことがあります。このため、パスワードの再設定には、スクリプトを使用しないことをお薦めします。 |
自分のパスワードを設定する場合、またはALTER
USER
システム権限を持っていて、他のユーザーのパスワードを変更する場合は、REPLACE
句を省略できます。ただし、ALTER
USER
システム権限を持たないかぎり、複雑なパスワードの検証機能が使用可能な場合は、UTLPWDMG.SQL
スクリプトを実行するか、またはユーザーに割り当てられたプロファイルのPASSWORD_VERIFY_FUNCTION
パラメータに検証機能を指定して、常にREPLACE
句を指定する必要があります。
Oracle ASMクラスタで、この句を使用して、ユーザーのパスワードを、現行のノードのOracle ASMインスタンスに対してローカルなパスワード・ファイルで変更できます。REPLACE
old_password
句を使用せずに
IDENTIFIED
BY
passwordを指定するには、
AS SYSASM
として認証されている必要があります。AS
SYSASM
として認証されていない場合は、REPLACE
old_password
を指定して自分のパスワードのみを変更できます。
以前のパスワードをREPLACE
句に指定した場合でも、自分以外の既存のパスワードを変更している場合は、以前のパスワードはチェックされません。
関連項目: パスワード作成のガイドラインに関しては『Oracle Databaseセキュリティ・ガイド』を参照してください |
GLOBALLY この句の詳細は、「CREATE USER」を参照してください。
ユーザー・アクセスの検証方法は、IDENTIFIED
GLOBALLY
からIDENTIFIED
BY
password
またはIDENTIFIED
EXTERNALLY
のいずれかに変更できます。ユーザーのアクセス検証方法を他のいずれかの検証方法からIDENTIFIED GLOBALLY
に
変更できるのは、ユーザーに明示的に付与されたすべての外部ロールが取り消された場合のみです。
EXTERNALLY この句の詳細は、「CREATE USER」を参照してください。
関連項目: グローバルまたは外部で識別されるユーザーの詳細は、『Oracle Databaseエンタープライズ・ユーザー・セキュリティ管理者ガイド』を参照してください。また、「ユーザー識別の変更例:」および「ユーザー認証の変更例:」も参照してください。 |
この句を使用すると、ユーザーの永続セグメントの表領域の割当てまたは再割当てを行うことができます。この句は、データベース用に指定されているデフォルトの表領域を上書きします。
デフォルトの表領域の制限事項: ローカル管理の一時表領域(UNDO表領域を含む)またはディクショナリ管理の一時表領域は、ユーザーのデフォルトの表領域として指定できません。
この句を使用すると、ユーザーの一時セグメントの表領域または表領域グループの割当てまたは再割当てを行うことができます。
tablespace
に、ユーザーの一時セグメント表領域を指定します。
tablespace_group_name
を指定すると、ユーザーは、tablespace_group_name
で指定された表領域グループ内の任意の表領域に一時セグメントを保存できるようになります。
ユーザーの一時表領域の制限事項: ユーザーの一時表領域として割り当てる表領域、または再度割り当てる表領域は、標準的なブロック・サイズの一時表領域である必要があります。
ログイン時にデフォルトによってユーザーに付与されるロールを指定します。この句では、GRANT
文を使用してユーザーに直接付与されているロール、またはCREATE
ROLE
権限を持つユーザーが作成したロールのみ指定できます。DEFAULT
ROLE
句を使用して次のロールを指定することはできません。
ユーザーに付与されていないロール
他のロールを介して付与されているロール
外部サービス(オペレーティング・システムなど)またはOracle Internet Directoryによって管理されるロール
パスワード認証されるロールや保護アプリケーション・ロールなど、SET
ROLE
文によって使用可能になるロール
ENABLE EDITIONS
この句は元に戻すことができません。ENABLE
EDITIONS
を指定すると、ユーザーは、エディションを使用しているスキーマ内で、エディション化可能なオブジェクトの複数のバージョンを作成できるようになります。エディションが有効でないスキーマ内のエディション化可能なオブジェクトは、エディション化できません。
エディションを有効にするスキーマ内にエディション化が可能でないオブジェクトが含まれており、そのオブジェクトがスキーマ内のエディション化可能なオブジェクトに依存している場合は、FORCE
を指定して、このスキーマのエディションを有効にする必要があります。この場合、エディションを有効にするスキーマ内にある、エディション化可能なタイプのオブジェクトに依存するオブジェクトのうち、エディション化が可能でないオブジェクトは、すべて無効になります。
proxy_clause
を使用すると、エンタープライズ・ユーザー(データベースの外側のユーザー)またはデータベース・プロキシ(別のデータベース・ユーザー)が、変更対象のデータベース・ユーザーとして、どのように接続できるようにするかを制御できます。
GRANT
CONNECT
THROUGH
を指定すると、接続を許可できます。
REVOKE
CONNECT
THROUGH
を指定すると、接続を禁止できます。
この句を使用すると、user
を、エンタープライズ・ユーザーがプロキシ使用できるように公開できます。Oracle Internet Directoryを担当する管理者は、user
の代理として作業するエンタープライズ・ユーザーに権限を適切に付与する必要があります。
この句を使用すると、user
を、データベース・ユーザーdb_user_proxy
(プロキシ)がプロキシ使用できるように公開できます。
このプロキシは、user
に直接付与されたすべての権限を持ちます。
このプロキシは、db_user_proxy_clauses
でWITH
句を指定して、user
のいくつかのロールのプロキシまたはロールなしのプロキシを制限しないかぎり、user
に関連付けられたすべてのロールを持ちます。プロキシに関連付けられた各ロールでは、ログイン時にデフォルトでロールがuser
で有効である場合、そのロールは、ログイン時にデフォルトでプロキシでも有効化されています。
db_user_proxy_clauses
WITH
句を使用すると、user
に関連付けられたいくつかのロールまたはロールなしへのプロキシを制限でき、AUTHENTICATION
RQUIRED
句を使用すると、認証が必要かどうかを指定できます。
WITH ROLE WITH
ROLE
role_name
を使用すると、プロキシは指定したユーザーとして接続でき、role_name
で指定されたロールのみをアクティブにできます。この句は、user
に関連付けられたロールのみを含みます。
WITH ROLE ALL EXCEPT WITH
ROLE
ALL
EXCEPT
role_name
を使用すると、プロキシは指定したユーザーとして接続でき、role_name
で指定されたロール以外の、このユーザーに関連付けられたすべてのロールをアクティブにできます。この句は、user
に関連付けられたロールのみを含みます。
WITH NO ROLES WITH
NO
ROLES
を使用すると、プロキシは指定したユーザーとして接続できますが、接続後にそのユーザーのロールを1つでもアクティブにすることは禁止されます。
AUTHENTICATION REQUIRED AUTHENTICATION
REQUIRED
句を指定しない場合、Oracle Databaseは、ユーザーの認証にプロキシを想定しません。この句は、ユーザーが指定されたプロキシを介して認証される場合に、ユーザーの認証資格証明が提示される必要があることを示しています。資格証明は、パスワードです。
AUTHENTICATED USING 以前のリリースの構文に出現したAUTHENTICATED
USING
句は非推奨になり、不要になりました。AUTHENTICATED
USING
PASSWORD
句を指定した場合、Oracle DatabaseはそれをAUTHENTICATION
REQUIRED
句に変換します。AUTHENTICATED
USING
CERTIFICATE
句またはAUTHENTICATED
USING
DISTINGUISHED
NAME
句を指定することは、AUTHENTICATION
REQUIRED
句を省略するのと同じです。
関連項目:
|
例
ユーザー識別の変更例: 次の文は、ユーザーsidney
(「データベース・ユーザーの作成例:」で作成)のパスワードをsecond_2nd_pwd
に、デフォルト表領域を表領域example
に変更します。
ALTER USER sidney IDENTIFIED BY second_2nd_pwd DEFAULT TABLESPACE example;
次の文は、new_profile
プロファイル(「プロファイルの作成例:」で作成)をサンプル・ユーザーsh
に割り当てます。
ALTER USER sh PROFILE new_profile;
後続のセッションでは、sh
はnew_profile
プロファイルの制限に従います。
次の文は、sh
に直接付与されているすべてのロール(dw_manager
ロールを除く)をデフォルト・ロールに設定します。
ALTER USER sh DEFAULT ROLE ALL EXCEPT dw_manager;
sh
の次のセッションの開始時には、dw_manager
以外でsh
に直接付与されているすべてのロールが使用可能になります。
ユーザー認証の変更例: 次の文は、ユーザーapp_user1
(「データベース・ユーザーの作成例:」で作成)の認証メカニズムを変更します。
ALTER USER app_user1 IDENTIFIED GLOBALLY AS 'CN=tom,O=oracle,C=US';
次の文は、ユーザーsidney
のパスワードを期限切れにします。
ALTER USER sidney PASSWORD EXPIRE;
PASSWORD
EXPIRE
を使用してデータベース・ユーザーのパスワードを期限切れにした場合、そのユーザー(またはDBA)は、期限切れの後でデータベースにログインする際、パスワードを変更する必要があります。ただし、SQL*Plusなどのツール製品を使用した場合、期限切れの後の最初のログイン時に、パスワードを変更できます。
表領域グループの割当て例: 次の文は、tbs_grp_01
(「表領域グループへの一時表領域の追加例:」で作成)を表領域グループとしてユーザーsh
に割り当てます。
ALTER USER sh TEMPORARY TABLESPACE tbs_grp_01;
プロキシ・ユーザー例: 次の文は、ユーザーapp_user1
を変更します。例では、app_user1
がプロキシ・ユーザーsh
を使用して接続できます。また、プロキシsh
を使用して接続したときに、app_user1
がwarehouse_userロール(「ロールの作成例:」
で作成)を使用可能にできます。
ALTER USER app_user1 GRANT CONNECT THROUGH sh WITH ROLE warehouse_user;
基本的な構文を示すため、サンプル・データベースSales Historyのユーザー(sh
)をプロキシとして使用します。通常、プロキシ・ユーザーは、アプリケーション・サーバーまたは中間層のエンティティに存在します。アプリケーション・サーバーを経由して、アプリケーション・ユーザーとデータベースの間のインタフェースを作成する場合の詳細は、『Oracle Call Interfaceプログラマーズ・ガイド』を参照してください。
次の文は、ユーザーapp_user1
がプロキシ・ユーザーsh
を使用して接続する権限を取り消します。
ALTER USER app_user1 REVOKE CONNECT THROUGH sh;
次の仮想例は、プロキシ認証の他の方法を示します。
ALTER USER sully GRANT CONNECT THROUGH OAS1 AUTHENTICATED USING PASSWORD;
次の例では、ユーザーapp_user1
をエンタープライズ・ユーザーがプロキシ使用できるように公開します。エンタープライズ・ユーザーは、Oracle Internet Directory管理者が適切な権限を付与するまでは、app_user1
の代理として作業することができません。
ALTER USER app_user1 GRANT CONNECT THROUGH ENTERPRISE USERS;