プライマリ・コンテンツに移動
Oracle® Database SQL言語リファレンス
11gリリース2 (11.2)
B56299-08
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

ALTER USER

用途

ALTER USERを使用すると、次の操作を実行できます。

  • データベース・ユーザーの認証またはデータベース・リソースの特性を変更します。

  • プロキシ・サーバーが認証なしでクライアントとして接続することを許可します。

  • Oracle Automatic Storage Management (Oracle ASM)クラスタで、ユーザーのパスワードを現在のノードのOracle ASMインスタンスに対してローカルなパスワード・ファイルで変更します。


関連項目:

ユーザーの認証方式の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

前提条件

通常、ALTER USERシステム権限が必要です。ただし、現行ユーザーはこの権限がない場合でも自分のパスワードは変更できます。

Oracle ASMインスタンス・パスワード・ファイルで自分以外のユーザーのパスワードを変更するには、AS SYSASMとして認証されている必要があります。

セマンティクス

この項で説明するキーワード、パラメータおよび句は、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エンタープライズ・ユーザー・セキュリティ管理者ガイド』を参照してください。また、「ユーザー識別の変更例:」および「ユーザー認証の変更例:」も参照してください。

DEFAULT TABLESPACE句

この句を使用すると、ユーザーの永続セグメントの表領域の割当てまたは再割当てを行うことができます。この句は、データベース用に指定されているデフォルトの表領域を上書きします。

デフォルトの表領域の制限事項: ローカル管理の一時表領域(UNDO表領域を含む)またはディクショナリ管理の一時表領域は、ユーザーのデフォルトの表領域として指定できません。

TEMPORARY TABLESPACE句

この句を使用すると、ユーザーの一時セグメントの表領域または表領域グループの割当てまたは再割当てを行うことができます。

  • tablespaceに、ユーザーの一時セグメント表領域を指定します。

  • tablespace_group_nameを指定すると、ユーザーは、tablespace_group_nameで指定された表領域グループ内の任意の表領域に一時セグメントを保存できるようになります。

ユーザーの一時表領域の制限事項: ユーザーの一時表領域として割り当てる表領域、または再度割り当てる表領域は、標準的なブロック・サイズの一時表領域である必要があります。

DEFAULT ROLE句

ログイン時にデフォルトによってユーザーに付与されるロールを指定します。この句では、GRANT文を使用してユーザーに直接付与されているロール、またはCREATE ROLE権限を持つユーザーが作成したロールのみ指定できます。DEFAULT ROLE句を使用して次のロールを指定することはできません。

  • ユーザーに付与されていないロール

  • 他のロールを介して付与されているロール

  • 外部サービス(オペレーティング・システムなど)またはOracle Internet Directoryによって管理されるロール

  • パスワード認証されるロールや保護アプリケーション・ロールなど、SET ROLE文によって使用可能になるロール


関連項目:

CREATE ROLE

ENABLE EDITIONS

この句は元に戻すことができません。ENABLE EDITIONSを指定すると、ユーザーは、エディションを使用しているスキーマ内で、エディション化可能なオブジェクトの複数のバージョンを作成できるようになります。エディションが有効でないスキーマ内のエディション化可能なオブジェクトは、エディション化できません。

エディションを有効にするスキーマ内にエディション化が可能でないオブジェクトが含まれており、そのオブジェクトがスキーマ内のエディション化可能なオブジェクトに依存している場合は、FORCEを指定して、このスキーマのエディションを有効にする必要があります。この場合、エディションを有効にするスキーマ内にある、エディション化可能なタイプのオブジェクトに依存するオブジェクトのうち、エディション化が可能でないオブジェクトは、すべて無効になります。

proxy_clause

proxy_clauseを使用すると、エンタープライズ・ユーザー(データベースの外側のユーザー)またはデータベース・プロキシ(別のデータベース・ユーザー)が、変更対象のデータベース・ユーザーとして、どのように接続できるようにするかを制御できます。

GRANT CONNECT THROUGH

GRANT CONNECT THROUGHを指定すると、接続を許可できます。

REVOKE CONNECT THROUGH

REVOKE CONNECT THROUGHを指定すると、接続を禁止できます。

ENTERPRISE USER

この句を使用すると、userを、エンタープライズ・ユーザーがプロキシ使用できるように公開できます。Oracle Internet Directoryを担当する管理者は、userの代理として作業するエンタープライズ・ユーザーに権限を適切に付与する必要があります。

db_user_proxy

この句を使用すると、userを、データベース・ユーザーdb_user_proxy (プロキシ)がプロキシ使用できるように公開できます。

  • このプロキシは、userに直接付与されたすべての権限を持ちます。

  • このプロキシは、db_user_proxy_clausesWITH句を指定して、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句を省略するのと同じです。


関連項目:

  • プロキシおよびデータベースの使用については、『Oracle Databaseセキュリティ・ガイド』および「プロキシ・ユーザー例:」を参照してください。

  • データベース・セキュリティの概要および中間層システムおよびプロキシ認証の詳細は、『Oracleセキュリティ概要』を参照してください。

  • アプリケーション・ユーザーのプロキシ認証の詳細は、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』を参照してください。


ユーザー識別の変更例: 次の文は、ユーザー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; 

後続のセッションでは、shnew_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_user1warehouse_userロール(「ロールの作成例:」で作成)を使用可能にできます。

ALTER USER app_user1 
   GRANT CONNECT THROUGH sh
   WITH ROLE warehouse_user;

基本的な構文を示すため、サンプル・データベースSales Historyのユーザー(sh)をプロキシとして使用します。通常、プロキシ・ユーザーは、アプリケーション・サーバーまたは中間層のエンティティに存在します。アプリケーション・サーバーを経由して、アプリケーション・ユーザーとデータベースの間のインタフェースを作成する場合の詳細は、『Oracle Call Interfaceプログラマーズ・ガイド』を参照してください。


関連項目:

  • app_userユーザーの作成方法については、「外部データベース・ユーザーの作成例:」を参照してください。

  • dw_userロールの作成方法については、「ロールの作成例:」を参照してください。


次の文は、ユーザー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;