メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012年12月1日)

CREATE USER

新しいデータベースユーザーアカウントを作成します。このコマンドを実行するには、データベースのスーパーユーザー権限を持つ必要があります。

構文

Copy
CREATE USER name [ [ WITH] option [ ... ] ] where option can be: CREATEDB | NOCREATEDB | CREATEUSER | NOCREATEUSER | IN GROUP groupname [, ... ] | PASSWORD { 'password' | 'md5hash' | DISABLE } | VALID UNTIL 'abstime' | CONNECTION LIMIT { limit | UNLIMITED }

Parameters

name

作成するユーザーアカウントの名前。有効な名前の詳細については、「名前と識別子」を参照してください。

CREATEDB | NOCREATEDB

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

CREATEUSER | NOCREATEUSER

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

IN GROUP groupname

ユーザーが属する既存のグループ名を指定します。複数のグループ名を指定できます。

PASSWORD { 'password' | 'md5hash' | DISABLE }

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

デフォルトでは、ユーザーはパスワードが無効になっていない限り、自分のパスワードを変更できます。ユーザーのパスワードを無効にするには、DISABLE を指定します。ユーザーのパスワードが無効になると、パスワードはシステムから削除され、ユーザーは IAM ユーザーの一時的認証情報を使用してのみログオンできます。詳細については、「IAM 認証を使用したデータベースユーザー認証情報の生成」を参照してください。スーパーユーザーのみが、パスワードを有効または無効にできます。スーパーユーザーのパスワードを無効にすることはできません。パスワードを有効にするには、ALTER USER を実行し、パスワードを指定します。

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

注記

AWS マネジメントコンソール、AWS CLI、または Amazon Redshift API を使用して新しいクラスターを起動する場合、マスターデータベースユーザーのパスワードはクリアテキストで指定する必要があります。ALTER USER を使用して、パスワードを後で変更できます。

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

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

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

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

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

注記

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

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

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

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

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

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

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

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

VALID UNTIL abstime

VALID UNTIL オプションでは、ユーザーアカウントのパスワードが無効になるまでの絶対時間を設定します。デフォルトでは、パスワードには期限がありません。

CONNECTION LIMIT { limit | UNLIMITED }

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

注記

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

使用に関する注意事項

デフォルトでは、すべてのユーザーは PUBLIC スキーマに対して、CREATE 権限と USAGE 権限を所有しています。ユーザーがデータベースの PUBLIC スキーマにオブジェクトを作成できないようにするには、REVOKE コマンドを使用してその権限を削除します。

IAM 認証情報を使用してデータベースのユーザー認証情報を作成する場合、一時的認証情報を使用してのみログオンできるスーパーユーザーを作成することをお勧めします。スーパーユーザーのパスワードを無効にすることはできませんが、ランダムに生成された MD5 ハッシュ文字列を使って不明なパスワードを作成することはできます。

Copy
create user iam_superuser password 'md5A1234567890123456780123456789012' createuser;

次のコマンドは、パスワード "abcD1234"、データベース接続特権、接続制限 30 の dbuser という名前のユーザーアカウントを作成します。

Copy
create user dbuser with password 'abcD1234' createdb connection limit 30;

PG_USER_INFO カタログテーブルに対してクエリを実行し、データベースユーザーに関する詳細を表示します。

Copy
select * from pg_user_info; usename | usesysid | usecreatedb | usesuper | usecatupd | passwd | valuntil | useconfig | useconnlimit -----------+----------+-------------+----------+-----------+----------+----------+-----------+------------- rdsdb | 1 | true | true | true | ******** | infinity | | adminuser | 100 | true | true | false | ******** | | | UNLIMITED danny | 102 | true | false | false | ******** | | | 30

次の例では、アカウントのパスワードは 2017 年 6 月 10 日まで有効です。

Copy
create user dbuser with password 'abcD1234' valid until '2017-06-10';

次の例では、特殊文字を含む、大文字と小文字が区別されるパスワードを持つユーザーを作成します。

Copy
create user newman with password '@AbC4321!';

MD5 パスワードにバックスラッシュ (「\」) を使用するには、ソースとなる文字列のバックスラッシュをバックスラッシュでエスケープします。 次の例では、slashpass という名前のユーザーを作成し、バックスラッシュ一つ ( '\') をパスワードとして使用しています。

Copy
select md5('\\'||'slashpass'); md5 -------------------------------- 0c983d1a624280812631c5389e60d48c create user slashpass password 'md50c983d1a624280812631c5389e60d48c';

このページの内容: