ALTER USER
データベースユーザーを変更します。
必要な権限
以下に、ALTER USER に必要な権限を示します。
スーパーユーザー
ALTER USER の権限を持つユーザー
自身のパスワードを変更しようとする現在のユーザー
構文
ALTER USER username [ WITH ] option [, ... ] where option is CREATEDB | NOCREATEDB | CREATEUSER | NOCREATEUSER | SYSLOG ACCESS { RESTRICTED | UNRESTRICTED } | PASSWORD { 'password' | 'md5hash' | DISABLE } [ VALID UNTIL 'expiration_date' ] | RENAME TO new_name | | CONNECTION LIMIT { limit | UNLIMITED } | SESSION TIMEOUT limit | RESET SESSION TIMEOUT | SET parameter { TO | = } { value | DEFAULT } | RESET parameter | EXTERNALID external_id
パラメータ
- username
-
ユーザーの名前。
- WiTH
-
オプションキーワード
- CREATEDB | NOCREATEDB
-
CREATEDB オプションを使用すると、ユーザーは新しいデータベースを作成できます。NOCREATEDB がデフォルトです。
- CREATEUSER | NOCREATEUSER
-
CREATEUSER オプションを使用すると、CREATE USER を含め、データベースに関するすべての権限を持つスーパーユーザーが作成されます。デフォルトは NOCREATEUSER です。詳細については、「superuser」を参照してください。
- SYSLOG ACCESS { RESTRICTED | UNRESTRICTED }
-
Amazon Redshift のシステムテーブルとビューに対するユーザーのアクセスレベルを指定する句です。
SYSLOG ACCESS RESTRICTED アクセス許可を持つ通常のユーザーは、ユーザーが表示できるシステムテーブルとビューで自分が生成した行のみを表示できます。デフォルトは RESTRICTED です。
SYSLOG ACCESS UNRESTRICTED アクセス許可を持つ通常のユーザーは、ユーザーが表示できるシステムテーブルとビューのすべての行 (別のユーザーが生成した行を含む) を表示できます。UNRESTRICTED を指定しても、スーパーユーザーが表示可能なテーブルへのアクセス権が、通常のユーザーに付与されるわけではありません。スーパーユーザーが表示可能なテーブルを表示できるのはスーパーユーザーだけです。
注記
システムテーブルに対する無制限のアクセス権限を付与されたユーザーは、別のユーザーが生成したデータへの可視性が提供されます。例えば、STL_QUERY と STL_QUERYTEXT には INSERT、UPDATE、および DELETE ステートメントのフルテキストが含まれており、ユーザーが生成した機密データがこれらに含まれている可能性があります。
SVV_TRANSACTIONS のすべての行は、すべてのユーザーが表示可能です。
詳細については、「システムテーブルとビューのデータの可視性」を参照してください。
- PASSWORD { 'password' | 'md5hash' | DISABLE }
-
ユーザーのパスワードを設定します。
デフォルトでは、ユーザーはパスワードが無効になっていない限り、自分のパスワードを変更できます。ユーザーのパスワードを無効にするには、DISABLE を指定します。ユーザーのパスワードが無効になると、パスワードはシステムから削除され、ユーザーは AWS Identity and Access Management (IAM) ユーザーの一時的認証情報を使用してのみログオンできます。詳細については、「IAM 認証を使用したデータベースユーザー認証情報の生成」を参照してください。スーパーユーザーのみが、パスワードを有効または無効にできます。スーパーユーザーのパスワードを無効にすることはできません。パスワードを有効にするには、ALTER USER を実行し、パスワードを指定します。
PASSWORD パラメータの使用の詳細については、「CREATE USER」を参照してください。
- VALID UNTIL 'expiration_date'
-
パスワードに失効日があることを指定します。値
'infinity'
を使用すると、失効日を設定しないようにすることができます。このパラメータの有効なデータ型はタイムスタンプです。このパラメータを使用できるのはスーパーユーザーだけです。
- RENAME TO
-
ユーザーの名前を変更します。
- new_name
-
ユーザーの新しい名前。有効な名前の詳細については、「名前と識別子」を参照してください。
重要
ユーザーの名前を変更すると、ユーザーのパスワードもリセットする必要があります。リセット後のパスワードは、以前のパスワードと異ならなくても構いません。ユーザー名はパスワード暗号化の一部として使用されるため、ユーザーの名前を変更すると、パスワードは消去されます。パスワードをリセットするまで、ユーザーはログオンできません。次に例を示します。
alter user newuser password 'EXAMPLENewPassword11';
- CONNECTION LIMIT { limit | UNLIMITED }
-
ユーザーが同時に開けるデータベース接続の最大数。この制限はスーパーユーザーには適用されません。同時接続の最大数を許可するには、UNLIMITED キーワードを使用します。データベースごとの接続数の制限が適用される場合もあります。詳細については、「CREATE DATABASE」を参照してください。デフォルトは UNLIMITED です。現在の接続を確認するには、STV_SESSIONSシステムビューに対してクエリを実行します。
注記
ユーザーとデータベースの両方の接続制限が適用される場合は、ユーザーが接続しようとしたときに、両方の制限内に未使用の接続スロットがなければなりません。
- SESSION TIMEOUT limit | RESET SESSION TIMEOUT
-
セッションが非アクティブまたはアイドル状態を維持する最大時間 (秒) です。指定できる範囲は 60 秒 (1 分) から 1,728,000 秒 (20 日) です。ユーザーに対しセッションタイムアウトが設定されていない場合は、クラスターの設定値が適用されます。詳細については、「Amazon Redshift 管理ガイド」の「Amazon Redshift のクォータと制限」を参照してください。
設定されたセッションタイムアウトは、新しいセッションにのみ適用されます。
開始時刻、ユーザー名、セッションタイムアウトなど、アクティブなユーザーセッションに関する情報を表示するには、STV_SESSIONSシステムビューを参照します。ユーザーセッションの履歴に関する情報を表示するには、STL_SESSIONSビューを参照します。セッションタイムアウト値など、データベースユーザーに関する情報を取得するには、SVL_USER_INFOビューを参照します。
- SET
-
指定したユーザーによって実行されるすべてのセッションに対して、設定パラメータを新しいデフォルト値に設定します。
- RESET
-
指定したユーザーに対して、設定パラメータを元のデフォルト値にリセットします。
- parameter
-
設定またはリセットするパラメータの名前。
- value
-
パラメータの新しい値。
- DEFAULT
-
指定したユーザーによって実行されるすべてのセッションに対して、設定パラメータをデフォルト値に設定します。
- EXTERNALID external_id
-
ID プロバイダーに関連付けられているユーザーの識別子。ユーザーはパスワードを無効にする必要があります。詳細については、「Amazon Redshift 用のネイティブ ID プロバイダー (IdP) フェデレーション」を参照してください。
使用に関する注意事項
rdsdb を変更する試行 —
rdsdb
という名前のユーザーは変更できません。不明なパスワードの作成 – AWS Identity and Access Management (IAM) 認証情報を使用してデータベースのユーザー認証情報を作成する場合、一時的認証情報を使用してのみログオンできるスーパーユーザーを作成することをお勧めします。スーパーユーザーのパスワードを無効にすることはできませんが、ランダムに生成された MD5 ハッシュ文字列を使って不明なパスワードを作成することはできます。
alter user iam_superuser password 'md51234567890123456780123456789012';
search_path の設定 – ALTER USER コマンドに search_path パラメータを設定した場合、指定したユーザーの次のログイン時に変更が反映されます。現在のユーザーとセッションの search_path 値を変更する場合は、SET コマンドを使用します。
タイムゾーンの設定 – ALTER USER コマンドに SET TIMEZONE を使用する場合、指定したユーザーの次のログイン時に変更が反映されます。
動的データマスキングと行レベルのセキュリティポリシーとの連携 – プロビジョニングされたクラスターまたはサーバーレス名前空間に動的データマスキングまたは行レベルのセキュリティポリシーが適用されている場合、次のコマンドは標準ユーザーに対してブロックされます。
ALTER <current_user> SET enable_case_sensitive_super_attribute/enable_case_sensitive_identifier/downcase_delimited_identifier
これらの設定オプションを設定できるのは、スーパーユーザーと、ALTER USER 権限を持つユーザーのみです。行レベルのセキュリティの詳細については、「行レベルのセキュリティ」を参照してください。動的データマスキングの詳細については、「動的データマスキング」を参照してください。
例
次の例では、ユーザー ADMIN にデータベースを作成する権限を与えます。
alter user admin createdb;
次の例では、ユーザー ADMIN のパスワードを adminPass9
に設定し、パスワードの有効期限切れの日時を設定します。
alter user admin password 'adminPass9' valid until '2017-12-31 23:59';
次の例では、ユーザー名を ADMIN から SYSADMIN に変更します。
alter user admin rename to sysadmin;
次の例では、ユーザーのアイドルセッションタイムアウトを 300 秒に変更しています。
ALTER USER dbuser SESSION TIMEOUT 300;
ユーザーのアイドルセッションタイムアウトをリセットします。これをリセットすると、クラスターの設定内容が適用されます。このコマンドを実行するには、データベースのスーパーユーザー権限を持つ必要があります。詳細については、「Amazon Redshift 管理ガイド」の「Amazon Redshift のクォータと制限」を参照してください。
ALTER USER dbuser RESET SESSION TIMEOUT;
次の例では、bob
という名前のユーザーの外部 ID を更新します。名前空間は myco_aad
です。名前空間が登録された ID プロバイダーに関連付けられていない場合、エラーが発生します。
ALTER USER myco_aad:bob EXTERNALID "ABC123" PASSWORD DISABLE;
次の例では、特定のデータベースユーザーが実行するすべてのセッションのタイムゾーンを設定します。現在のセッションではなく、後のセッションのタイムゾーンを変更します。
ALTER USER odie SET TIMEZONE TO 'Europe/Zurich';
次の例では、ユーザー bob
が開くことができるデータベース接続の最大数を設定します。
ALTER USER bob CONNECTION LIMIT 10;