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

CREATE USER

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

構文

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

パラメーター

name

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

CREATEDB | NOCREATEDB

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

CREATEUSER | NOCREATEUSER

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

IN GROUP groupname

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

PASSWORD { 'password' | 'md5hash' }

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

クリアテキストまたは 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 RedshiftMD5 関数と連結演算子 ( || ) を使用し、32 文字 MD5 ハッシュ文字列を返しています。

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

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

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

VALID UNTIL abstime

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

CONNECTION LIMIT { limit | UNLIMITED }

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

注記

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

使用に関する注意事項

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

次のコマンドで作成するユーザーアカウントでは、ユーザー名を danny、パスワードを「abcD1234」とし、データベース接続の権限を持たせ、接続の制限数を 30 とします。

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';

このページの内容: