Amazon Redshift
データベース開発者ガイド (API バージョン 2012年12月1日)

CREATE USER

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

構文

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

Parameters

name

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

WiTH

オプションキーワードWITH は Amazon Redshift に無視されます。

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 ハッシュ文字列を返しています。

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

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

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

CREATEDB | NOCREATEDB

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

CREATEUSER | NOCREATEUSER

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

SYSLOG ACCESS { RESTRICTED | UNRESTRICTED }

Amazon Redshift のシステムテーブルとビューに対するユーザーのアクセスレベルを指定する句です。

RESTRICTED が指定されている場合、そのユーザーは、ユーザーが表示可能なシステムテーブルとビューで生成した行しか表示できません。デフォルトは RESTRICTED です。

UNRESTRICTED が指定されている場合、そのユーザーは、別のユーザーによって生成された行を含む、ユーザーが表示可能なシステムテーブルとビューのすべての行を表示できます。UNRESTRICTED を指定しても、スーパーユーザーが表示可能なテーブルへのアクセス権が、通常のユーザーに付与されるわけではありません。スーパーユーザーが表示可能なテーブルを表示できるのはスーパーユーザーだけです。

注記

システムテーブルに対する無制限のアクセス権限を付与されたユーザーは、別のユーザーが生成したデータへの可視性が提供されます。たとえば、STL_QUERY と STL_QUERY_TEXT には INSERT、UPDATE、および DELETE ステートメントのフルテキストが含まれており、ユーザーが生成した機密データがこれらに含まれている可能性があります。

STV_RECENTS および SVV_TRANSACTIONS のすべての行は、すべてのユーザーに表示されます。

詳細については、「システムテーブルとビューのデータの可視性」を参照してください。

IN GROUP groupname

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

VALID UNTIL abstime

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

CONNECTION LIMIT { limit | UNLIMITED }

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

注記

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

使用に関する注意事項

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

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

create user iam_superuser password 'md5A1234567890123456780123456789012' createuser;

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

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

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

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 日まで有効です。

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

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

create user newman with password '@AbC4321!';

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

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

このページの内容: