ALTER USER

ALTER USER コマンドは、ユーザー・アカウントの変更に使用します。 指定しない属性は、変更されません。 例えば、有効期限を指定しない場合、以前に設定された有効期限が適用され続けます。

ALTER USER コマンドは、ユーザー・アカウント属性の以下の設定または変更に使用します。
  • パスワードを設定または変更する。
  • パスワードまたはアカウント自体の有効期限を設定する。
  • セッション・タイムアウト、照会タイムアウト、行セット制限を設定する。
  • ユーザーをユーザー・グループに追加する。 (ALTER USER コマンドは、ユーザーをグループから削除するためには使用できません。これを実行するには、ALTER GROUP コマンドを使用する必要があります。)
  • ログオン試行の最大数を超過した後にアカウントのロックを解除する。

構文

ユーザー・アカウントを変更する場合の構文
ALTER USER <username> [WITH] <clause> [<clause>…]
ここで、<clause> は、以下を表します。
RENAME TO <newname>
RESET ACCOUNT
PASSWORD {'<pw>'|NULL} |
EXPIRE PASSWORD
PASSWORDEXPIRY <days>
AUTH {LOCAL|DEFAULT}
SYSID <userid> |
IN GROUP <usergrp>[,<usergrp>…] |
IN RESOURCEGROUP <rsg> 
VALID UNTIL '<valid_date>' |
DEFPRIORITY {CRITICAL|HIGH|NORMAL|LOW|NONE} |
MAXPRIORITY {CRITICAL|HIGH|NORMAL|LOW|NONE} |
ROWSETLIMIT <rslimit> |
SESSIONTIMEOUT <sessiontimeout> |
QUERYTIMEOUT <querytimeout> |
CONCURRENT SESSIONS <concsessions> |
SECURITY LABEL {'<seclabel>|PUBLIC::'} |
AUDIT CATEGORY {NONE|'<category>[,<category>…]'}
COLLECT HISTORY {ON|OFF|DEFAULT} |
ALLOW CROSS JOIN {TRUE|FALSE|NULL} |
ACCESS TIME {ALL|DEFAULT|(<access-time>[,<access-time>…])}

入力

ALTER USER コマンドの入力は以下のとおりです。
表 1. ALTER USER の入力
入力 説明
<username> 変更するユーザー・アカウントの名前。
RENAME TO <newname> このユーザー・アカウントの新しい名前。
RESET ACCOUNT ログオンの最大数を超過した後にアカウントのロックを解除します。
PASSWORD <pw> このアカウントの新規パスワード。 ユーザー・アカウントにパスワードを設定する必要がなければ、NULL を指定します。

データベース・ユーザー・アカウントを変更するときにパスワードを指定できますが、そのパスワードは LOCAL 認証でしか使用されません。 LOCAL 認証を使用する場合、ユーザーにはログオンするためのパスワードが必要になります。NULL パスワードは許可されません。 LDAP または Kerberos 認証から LOCAL 認証に変更する場合は、ALTER USER コマンドを使用してユーザーのパスワードを指定します。

EXPIRE PASSWORD ユーザーが初めてログインした後に、パスワードの変更が強制されます。
PASSWORDEXPIRY パスワードが有効である日数。 このオプションを指定しないか、値 0 を指定した場合、パスワードの有効期限は切れません。 パスワードの有効期限が切れると、データベースは次のメッセージを表示しますRestricted Session. User password has expiredそのユーザーが次にデータベースにログインしたとき。 ユーザーがすべての権限を取り戻すには、アカウントのパスワードを ALTER USER コマンドを使用するなどして変更する必要があります。

有効期限は、ローカルで認証されるアカウントに対して使用します。 ユーザー・アカウントの有効期限を設定しない場合でも、ユーザーがメンバーであるデータベース・グループに有効期限がある、またはシステム全体の有効期限が設定されていると、アカウント・パスワードの有効期限が切れる可能性があります。

AUTH ユーザーが使用する認証タイプ。
LOCAL
LOCAL 認証。
デフォルト
接続に対して指定された認証タイプ (LOCAL、LDAP、または KERBEROS)。
SYSID <userid> 新しいユーザー・アカウントに関連付けられるユーザー ID。
IN GROUP <usergrp> ユーザーをメンバーとして追加する先のユーザー・グループ。 (ALTER USER コマンドは、ユーザーをグループから削除するためには使用できません。これを実行するには、ALTER GROUP コマンドを使用する必要があります。)
IN RESOURCEGROUP <rsg> ユーザーが割り当てられるリソース・グループ。
VALID UNTIL '<valid_date>' このユーザー・アカウントが期限切れとなる日付 (オプションで時刻も指定可能)。
DEFPRIORITY ユーザーによって実行依頼された照会のデフォルト優先度。
MAXPRIORITY ユーザーによって実行依頼された照会の最大優先度。
ROWSETLIMIT <rslimit> ユーザーによって実行される照会が返すことができる最大行数。 値は、次のいずれかです。
  • 1 から 2,147,483,647 の範囲の数値。
  • 行数が無制限の場合は 0。
SESSIONTIMEOUT <sessiontimeout> システムがセッションを強制終了するまでにセッションがアイドル状態でいられる分数。 値は、次のいずれかです。
  • 1 から 35,791,394 の範囲の数値
  • 分数が無制限の場合は 0。
QUERYTIMEOUT <querytimeout> システムが管理者に通知するまでに照会を実行できる分数。 値は、次のいずれかです。
  • 1 から 35,791,394 の範囲の数値
  • 分数が無制限の場合は 0。

管理者が発行されたメッセージを受け取るには、RunAwayQuery イベント・ルールが有効である必要があります。 このルールは『IBM® Netezza®システム管理者ガイド』に記載されています。

CONCURRENT SESSIONS <concsessions> このユーザーで処理できる並行セッションの最大数。 値は、次のいずれかです。
  • 1 から 35,791,394 の範囲の数値
  • セッション数が無制限の場合は 0。
値 0 の場合は、並行セッションの数が制限されません。ただし、特定のグループによって制限が設定されている場合を除きます。 グループによる制限がある場合、このようなすべてのグループにおいて、最小の並行セッション数が使用されます。
SECURITY LABEL <seclabel> ユーザーのセキュリティー・ラベル。 ラベルの ID が他のユーザー節と競合しないように、ラベルは単一引用符で囲んで指定する必要があります。
AUDIT CATEGORY ユーザーの監査ロギング中にセキュリティー・ラベルに追加される 1 つ以上の監査カテゴリー。
COLLECT HISTORY システムがこのユーザーのセッションの履歴データを収集するかどうか。
ON
COLLECT HISTORY が ON に設定されているデータベースにこのユーザーが接続している場合、このユーザーに関する履歴が収集されます。
オフ
このユーザーに対して履歴は収集されません。
デフォルト
COLLECT HISTORY が ON に設定されているデータベースにこのユーザーが接続しており、以下の基準のいずれかが当てはまる場合に、このユーザーに関する履歴が収集されます。
  • このユーザーは、いずれのユーザー・グループのメンバーでもない。
  • このユーザーがメンバーであるすべてのユーザー・グループは、COLLECT HISTORY が DEFAULT に設定されている。
  • このユーザーがメンバーである少なくとも 1 つのユーザー・グループは、COLLECT HISTORY が ON に設定されている。
ALLOW CROSS JOIN ユーザーが明示的なクロス結合を実行できるかどうか。
はい
ユーザーは明示的なクロス結合を実行できます。
いいえ
ユーザーは明示的なクロス結合を実行できません。
ヌル
ユーザーは、ALLOW CROSS JOIN が FALSE に設定されている 1 つ以上のユーザー・グループのメンバーでない限り、明示的なクロス結合を実行できます。
ACCESS TIME システムでのセッションの開始がユーザーに許可されるかどうか。
すべて
ユーザーは、任意の曜日の任意の時間にセッションを開始できます。
デフォルト
ユーザーがメンバーである各グループのアクセス時間の設定の組み合わせは、ユーザーがいつセッションを開始できるのかを決定します。 例えば、ユーザーが 2 つのグループ (1 つは ACCESS TIMEを「1,2,3」と指定し、もう 1 つは「5,6,7」と指定している) のメンバーである場合、ユーザーはセッションを水曜日 (曜日 4) にのみ開始することができます。
<access-time>
アクセス時間の各サブ節は、ユーザーがセッションを開始できる 1 つ以上の曜日と 1 つの時間間隔を指定します。 各日はSQLの曜日番号で表される(1=日曜日、7=土曜日など)。 キーワード ALL は、曜日を「1,2,3,4,5,6,7」と指定するのと同等です。 アクセス時間のサブ節にはオプションで、時間境界を 1 つ含めることもできます。 時間境界が指定されていない場合、そのグループは指定日の任意の時間にセッションを作成できます。

出力

ALTER USER コマンドは以下の出力を生成します。
表 2. ALTER USER の出力
出力 説明
ALTER USER ユーザー・アカウントは正常に変更されました。
ERROR: ALTER USER: user 'username' does not exist データベースはそのユーザーを認識していません。
ERROR: permission denied. 指定されたオプションの 1 つ以上を設定するための Manage Security 特権が必要です。
ERROR: invalid security label. セキュリティー・ラベルが間違ったフォーマットを指定されているか、存在しないセキュリティー・レベル、コホート、またはカテゴリーを参照しています。
ERROR: object <category_name> not found. 指定された監査カテゴリーは存在していません。
ERROR: ALTER USER: User password cannot be repeated within the last '<num>' passwords パスワードは、最後の <num> パスワード変更で使用されたストリングにすることはできません。 システムにパスワードの履歴が保持され、パスワードの再使用頻度に関するポリシーが適用されます。 パスワードとセキュリティ制御の詳細については、『IBM Netezzaシステム管理者ガイド』を参照してください

特権

このコマンドを発行するには
  • SECURITY LABEL、AUDIT CATEGORY、または COLLECT HISTORY オプションを指定する場合、Manage Security 特権が必要です。
  • その他のオプションのいずれかを指定する場合は、以下の基準の少なくとも 1 つを満たす必要があります。
    • admin ユーザーである。
    • ユーザー・アカウントの所有者である。
    • アカウントがユーザー・アカウントまたは User オブジェクト・クラスに対する Alter 特権を持っている。
  • IN GROUP オプションを指定する場合、対応するグループまたは Group オブジェクト・クラスに対する List アクセス権限も持っている必要があります。

使用法

以下に使用例を示します。
  • ユーザー・パスワードを変更します。
    MYDB.SCH1(USER)=> ALTER USER davide WITH PASSWORD 'hu8jmn3';
  • ユーザー・アカウントの有効期限を設定します。
    MYDB.SCH1(USER)=> ALTER USER manuel WITH VALID UNTIL 'Jan 31 2030';
  • 60 日後に有効期限が切れるようにアカウントのパスワードを構成します。
    MYDB.SCH1(USER)=> ALTER USER sales_usr WITH 
      PASSWORDEXPIRY 60;
  • ユーザーの行セット制限を設定します。
    MYDB.SCH1(USER)=> ALTER USER mark WITH ROWSETLIMIT 10000;