メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012-12-01)

ALTER USER

データベースユーザーアカウントを変更します。現在のユーザーは、ユーザー自身でパスワードを変更できます。 他のオプションでは、このコマンドを実行するには、データベースのスーパーユーザーである必要があります。

構文

Copy
ALTER USER username [ WITH ] option [, ... ] where option is CREATEDB | NOCREATEDB | CREATEUSER | NOCREATEUSER | PASSWORD { 'password' | 'md5hash' } [ VALID UNTIL 'expiration_date' ] | RENAME TO new_name | | CONNECTION LIMIT { limit | UNLIMITED } | SET parameter { TO | = } { value | DEFAULT } | RESET parameter

Parameters

username

ユーザーアカウントの名前。

WiTH

オプションキーワード

CREATEDB | NOCREATEDB

CREATEDB オプションを使用すると、ユーザーは新しいデータベースを作成できます。NOCREATEDB がデフォルトです。

CREATEUSER | NOCREATEUSER

CREATEUSER オプションを使用すると、CREATE USER を含め、データベースに関するすべての権限を持つスーパーユーザーが作成されます。デフォルトは NOCREATEUSER です。詳細については、「superuser」を参照してください。

PASSWORD { 'password' | 'md5hash' }

ユーザーのパスワードを設定します。

クリアテキストまたは MD5 ハッシュ文字列でパスワードを指定します。

クリアテキストでは、パスワードは以下の制約を満たす必要があります:

  • 8 から 64 文字の長さにする必要があります。

  • 少なくとも 1 つの大文字、1 つの小文字、および 1 つの数字を使用する必要があります。

  • 表示可能な ASCII 文字 (ASCII コード 33 ~ 126) のうち、' (一重引用符)、" (二重引用符)、\、/、@ および空白を除く任意の文字を使用できます。

クリアテキストで CREATE USER パスワード パラメータを通過するための安全な代替方法として、パスワードとユーザー名を含む文字列の MD5 ハッシュを指定できます。

注記

MD5 ハッシュ文字列を指定すると、ALTER USER コマンドが MD5 ハッシュ文字列の有効性を確認しますが、パスワード部分の文字列は検証されません。 この場合、データベースにログインするために利用できないパスワード (空の文字列など) を作成することができます。

MD5 パスワードを指定するには、以下のステップに従います:

  1. パスワードとユーザー名を連結します。

    例えば、パスワードが ez、ユーザーが user1 の場合、連結した文字列は ezuser1 です。

  2. 連結した文字列を 32 文字の MD5 ハッシュ文字列に変換します。 ハッシュ文字列を作成するために任意の MD5 ユーティリティを使用できます。 次の例では、Amazon RedshiftMD5 関数と連結演算子 ( || ) を使用し、32 文字 MD5 ハッシュ文字列を返しています。

    Copy
    select md5('ez' || 'user1'); md5 -------------------------------- 153c434b4b77c89e6b94f12c5393af5b
  3. MD5 ハッシュ文字列の前に「md5」を連結し、md5hash 引数として連結した文字列を指定します。

    Copy
    create user user1 password 'md5153c434b4b77c89e6b94f12c5393af5b';
  4. ユーザー名とパスワードを使用してデータベースにログオンします。

    この例では、ez のパスワードで user1 としてログオンします。

VALID UNTIL 'expiration_date'

パスワードに失効日があることを指定します。値 'infinity' を使用すると、失効日を設定しないようにすることができます。このパラメータの有効なデータ型はタイムスタンプです。

RENAME TO

ユーザーアカウントの名前を変更します。

new_name

ユーザーの新しい名前。有効な名前の詳細については、「名前と識別子」を参照してください。

重要

ユーザーの名前を変更すると、ユーザーのパスワードも変更する必要があります。ユーザー名はパスワード暗号化の一部として使用されるため、ユーザーの名前を変更すると、パスワードは消去されます。パスワードをリセットするまで、ユーザーはログインできません。以下に例を示します。

Copy
alter user newuser password 'EXAMPLENewPassword11';

CONNECTION LIMIT { limit | UNLIMITED }

ユーザーが同時に開けるデータベース接続の最大数。この制限はスーパーユーザーには適用されません。同時接続の最大数を許可するには、UNLIMITED キーワードを使用します。クラスターごとの同時接続の制限数は 500 です。データベースごとの接続数の制限が適用される場合もあります。詳細については、「CREATE DATABASE」を参照してください。デフォルトは UNLIMITED です。現在の接続を確認するには、STV_SESSIONS システムビューに対してクエリを実行します。

注記

ユーザーとデータベースの両方の接続制限が適用される場合は、ユーザーが接続しようとしたときに、両方の制限内に未使用の接続スロットがなければなりません。

SET

指定したユーザーによって実行されるすべてのセッションに対して、設定パラメータを新しいデフォルト値に設定します。

RESET

指定したユーザーに対して、設定パラメータを元のデフォルト値にリセットします。

parameter

設定またはリセットするパラメータの名前。

パラメータの新しい値。

DEFAULT

指定したユーザーによって実行されるすべてのセッションに対して、設定パラメータをデフォルト値に設定します。

使用に関する注意事項

ALTER USER コマンドに search_path パラメータを設定した場合、指定したユーザーの次のログイン時に変更が反映されます。 現在のユーザーとセッションの search_path を変更する場合は、SET コマンドを使用します。

次の例では、ユーザー ADMIN にデータベースを作成する権限を与えます。

Copy
alter user admin createdb;

次の例では、ユーザー ADMIN のパスワードを adminPass9 に設定し、パスワードの有効期限切れの日時を設定します。

Copy
alter user admin password 'adminPass9' valid until '2017-12-31 23:59';

次の例では、ユーザー名を ADMIN から SYSADMIN に変更します。

Copy
alter user admin rename to sysadmin;