カテゴリ:

ユーザーとセキュリティ DDL (ユーザー)

CREATE USER

システム内の新しいユーザーを作成するか、既存のユーザーを置き換えます。詳細については、 ユーザー管理 をご参照ください。

注釈

ユーザーを作成できるのは、セキュリティおよびアカウント管理者( SECURITYADMIN または ACCOUNTADMIN ロールを持つユーザー)のみです。

こちらもご参照ください:

ALTER USERDESCRIBE USERSHOW PARAMETERS

構文

CREATE [ OR REPLACE ] USER [ IF NOT EXISTS ] <name>
  [ objectProperties ]
  [ objectParams ]
  [ sessionParams ]

条件:

objectProperties ::=
  PASSWORD = '<string>'
  LOGIN_NAME = <string>
  DISPLAY_NAME = <string>
  FIRST_NAME = <string>
  MIDDLE_NAME = <string>
  LAST_NAME = <string>
  EMAIL = <string>
  MUST_CHANGE_PASSWORD = TRUE | FALSE
  DISABLED = TRUE | FALSE
  SNOWFLAKE_SUPPORT = TRUE | FALSE
  DAYS_TO_EXPIRY = <integer>
  MINS_TO_UNLOCK = <integer>
  DEFAULT_WAREHOUSE = <string>
  DEFAULT_NAMESPACE = <string>
  DEFAULT_ROLE = <string>
  MINS_TO_BYPASS_MFA = <integer>
  RSA_PUBLIC_KEY = <string>
  RSA_PUBLIC_KEY_2 = <string>
  COMMENT = '<string_literal>'
objectParams ::=
  NETWORK_POLICY = <string>
sessionParams ::=
  ABORT_DETACHED_QUERY = TRUE | FALSE
  AUTOCOMMIT = TRUE | FALSE
  BINARY_INPUT_FORMAT = <string>
  BINARY_OUTPUT_FORMAT = <string>
  DATE_INPUT_FORMAT = <string>
  DATE_OUTPUT_FORMAT = <string>
  ERROR_ON_NONDETERMINISTIC_MERGE = TRUE | FALSE
  ERROR_ON_NONDETERMINISTIC_UPDATE = TRUE | FALSE
  JSON_INDENT = <num>
  LOCK_TIMEOUT = <num>
  QUERY_TAG = <string>
  ROWS_PER_RESULTSET = <num>
  SIMULATED_DATA_SHARING_CONSUMER = <string>
  STATEMENT_TIMEOUT_IN_SECONDS = <num>
  STRICT_JSON_OUTPUT = TRUE | FALSE
  TIMESTAMP_DAY_IS_ALWAYS_24H = TRUE | FALSE
  TIMESTAMP_INPUT_FORMAT = <string>
  TIMESTAMP_LTZ_OUTPUT_FORMAT = <string>
  TIMESTAMP_NTZ_OUTPUT_FORMAT = <string>
  TIMESTAMP_OUTPUT_FORMAT = <string>
  TIMESTAMP_TYPE_MAPPING = <string>
  TIMESTAMP_TZ_OUTPUT_FORMAT = <string>
  TIMEZONE = <string>
  TIME_INPUT_FORMAT = <string>
  TIME_OUTPUT_FORMAT = <string>
  TRANSACTION_DEFAULT_ISOLATION_LEVEL = <string>
  TWO_DIGIT_CENTURY_START = <num>
  UNSUPPORTED_DDL_ACTION = <string>
  USE_CACHED_RESULT = TRUE | FALSE
  WEEK_OF_YEAR_POLICY = <num>
  WEEK_START = <num>

注釈

読みやすくするために、ユーザーに設定できるセッションパラメーターの完全なリストはここには含まれていません。すべてのセッションパラメーターの完全なリストとその説明、およびアカウントとオブジェクトのパラメーターついては、 パラメーター をご参照ください。

必須パラメーター

名前

ユーザーの識別子。アカウントに対して一意である必要があります。

識別子はアルファベットで始まる必要があり、識別子文字列全体が二重引用符で囲まれていない限り、スペースや特殊文字を含めることはできません(例: "My object")。二重引用符で囲まれた識別子も大文字と小文字が区別されます。

詳細については、 識別子の要件 をご参照ください。

注釈

ユーザーはこの値を使用してSnowflakeにログインすることは しません。代わりにユーザーは、 LOGIN_NAME プロパティに指定された値を使用してログインします。ただし、ユーザーのログイン名が明示的に指定されていない場合は、ユーザー名/識別子がデフォルトのログイン名として機能します。

オプションのオブジェクトプロパティ(objectProperties

PASSWORD = '文字列'

ユーザーのパスワード(一重引用符または二重引用符で囲む必要があります)。パスワードが指定されていない場合、ユーザーは、パスワードが明示的に指定されるまでSnowflakeにログインできません。

パスワードには、空白文字や感嘆符(!)、パーセント記号(%)、アスタリスク(*)などの特殊文字(英数字以外の文字)を含め、256文字までの大文字と小文字が区別される文字列を使用できます。

Snowflakeは、ユーザーの作成時、ユーザーの新規/初期パスワードの設定時、またはユーザーの既存のパスワードのリセット時に、次のパスワードポリシーを適用します。

  • 少なくとも8文字の長さが必要です。

  • 少なくとも数字1つを含める必要があります。

  • 少なくとも1つの大文字と1つの小文字を含める必要があります。

ただし、このポリシーは、ユーザーパスワードの 最小 要件のみを対象としています。できるだけ強力なパスワードを作成するために、次のガイドラインに沿うことを 強く お勧めします。

  • Snowflake用に一意のパスワードを作成します(つまり、他のシステムまたはアカウントからのパスワードを再利用しない)。

  • 8文字以上を使用してください。

  • 複数のランダムな大文字、小文字混合の文字、数字、および空白を含む特殊文字を含めます。

  • 推測しやすい一般的なパスワード、名前、数字、または日付は使用しません。

さらに、ユーザーログインの最高レベルのセキュリティを構成するには、ユーザーを MFA に登録する ことをお勧めします。

Snowflakeは、このコマンドまたは ALTER USER コマンドを使用してユーザーのパスワードが最初に設定されたときに、このポリシーを強制 しない ことに注意してください。これにより、セキュリティ管理者は、一般的な安全性の低いパスワードまたは特定の強力なパスワードを新しいユーザーに割り当てるかどうかを決定できます。一般的な初期パスワードを使用する場合、 MUST_CHANGE_PASSWORD プロパティを TRUE に設定して、ユーザーがSnowflakeに次回ログインするときに(初期ログインを含む)パスワードを変更することを要求することを 強く お勧めします。

さらに、Snowflakeでは、初期パスワードなしでユーザーを作成して、新しいユーザーがシステムにログインできないビジネスプロセスをサポートできます。ただし、一般的な規則として、Snowflakeはユーザーが初期パスワードで作成されることを期待しています。実際、Snowflake ウェブインターフェイスでは、パスワードなしでユーザーを作成することはできません。

空の文字列('')または NULL は、ユーザーがパスワードを持っていないことを指定します。

デフォルト: NULL

LOGIN_NAME = 文字列

ユーザーがシステムにログインするために入力する名前。ユーザーのログイン名は、アカウント全体で一意である必要があります。

ログイン名には、スペースや感嘆符(!)、パーセント記号(%)、アスタリスク(*)などの英数字以外の文字列を使用できます。ただし、文字列にスペースまたは英数字以外の文字が含まれる場合は、一重引用符または二重引用符で囲む必要があります。ログイン名は常に大文字と小文字を区別しません。

Snowflakeでは、異なるユーザー名とログイン名を指定して、ログインに共通の識別子(例:電子メールアドレス)を使用できるようにします。

デフォルト:ユーザーの名前/識別子(つまり、値が指定されていない場合は、 名前 のために指定された値をログイン名として使用)

DISPLAY_NAME = 文字列

Snowflakeウェブインターフェイスでユーザーに表示される名前。

デフォルト:ユーザーの名前/識別子(つまり、値が指定されていない場合は、 名前 のために指定された値を表示名として使用)

FIRST_NAME = 文字列. MIDDLE_NAME = 文字列. LAST_NAME = 文字列

ユーザーの名、ミドルネーム、および姓。

デフォルト: NULL

EMAIL = 文字列

ユーザーのメールアドレス。

Snowflakeを使用するためにメールアドレスは必要ありません。ただし、Snowflakeコミュニティにアクセスしてサポートチケットを開いたり、コミュニティフォーラムに投稿したりするには、ユーザーの有効なメールアドレスを指定する必要があります。

デフォルト: NULL

MUST_CHANGE_PASSWORD = TRUE | FALSE

ユーザーがシステムへの次のログイン(最初/最初のログインを含む)でパスワードの変更を強制されるかどうかを指定します。

デフォルト: FALSE

DISABLED = TRUE | FALSE

ユーザーを無効にするかどうかを指定します。これにより、次のアクションが防止されます。

  • 新しいユーザーの場合、ユーザーはSnowflakeからロックアウトされ、ログインできません。

  • 既存のユーザーの場合、プロパティを設定すると、現在実行中のすべてのクエリが中止され、ユーザーは新しいクエリを発行できなくなります。ユーザーはすぐにSnowflakeからロックアウトされ、再びログインできません。

デフォルト: FALSE

SNOWFLAKE_SUPPORT = TRUE | FALSE

Snowflakeがこのユーザーとしてログインできるかどうかを指定します。このプロパティを使用して、Snowflakeの担当者またはサポートエンジニアにアカウントへのアクセスを許可し、問題のデバッグまたはトラブルシューティングを行うことができます。

デフォルト: FALSE

DAYS_TO_EXPIRY = 整数

ユーザーのステータスが「期限切れ」に設定され、ユーザーがログインできなくなるまでの日数を指定します。これは、一時的なユーザー(つまり、一定の期間だけSnowflakeにアクセスする必要があるユーザー)を定義するのに役立ちます。

設定すると、値は 0 までカウントダウンしますが、停止しません。負の値は、ユーザーのステータスが「期限切れ」であることを示します。値をリセットするには、 ALTER USER を使用して次の値を設定します。

  • ユーザーを一時ユーザーとして再度有効にするには、値を 0 より大きい値に設定します。

  • ユーザーを永続ユーザーとして指定するには、値を NULL または 0 に設定します。

デフォルト: NULL

MINS_TO_UNLOCK = 整数

ユーザーログインの一時ロックが解除されるまでの分数を指定します。不正なユーザーログインから保護するために、Snowflakeは5回連続して失敗したログイン試行後にユーザーを一時的にロックします。

  • 正の値は、ユーザーのステータスが「ロック」されていることを示します。

  • 値が 0 (または負の値)までカウントダウンすると、ロックが解除され、ユーザーは再びログインできるようになります。

  • ユーザーがSnowflakeに正常にログインすると、値は NULL にリセットされます。

ユーザーを作成するとき、指定された時間が経過するまでログインできないようにこのプロパティを設定できます。

ユーザーのロックをすぐに削除するには、 ALTER USER を使用して、このパラメーターに 0 の値を指定します。

デフォルト: NULL

DEFAULT_WAREHOUSE = 文字列

ログイン時のユーザーのセッションに対してデフォルトでアクティブになっている仮想ウェアハウスを指定します。

ユーザーは、 ALTER USER を使用して現在のデフォルトの仮想ウェアハウスを指定または変更できます。さらに、セッションを開始(ログイン)した後、ユーザーは USE WAREHOUSE を使用してセッションの仮想ウェアハウスを変更できます。

デフォルト: NULL

DEFAULT_NAMESPACE = 文字列

ログイン時にユーザーのセッションに対してデフォルトでアクティブになる名前空間(データベースのみ、またはデータベースとスキーマ)を指定します。

  • データベースのみを指定するには、データベース名を入力します。

  • スキーマを指定するには、完全修飾スキーマ名を データベース名.スキーマ名 の形式で入力します。

ユーザーは、 ALTER USER を使用して現在のデフォルト名前空間を指定または変更できます。さらに、セッションを開始(ログイン)した後、ユーザーは USE DATABASE または USE SCHEMA を使用してセッションの名前空間を変更できます。

デフォルト: NULL

DEFAULT_ROLE = 文字列

ログイン時にユーザーのセッションに対してデフォルトでアクティブになるロールを指定します。

ユーザーに既定のロールを指定しても、そのロールはユーザーに付与 されません 。ロールは、 GRANT ROLE コマンドを使用してユーザーに明示的に付与する必要もあります。

ユーザーは、 ALTER USER を使用して現在の既定のロールを指定または変更できます。さらに、セッションを開始(ログイン)した後、ユーザーは USE ROLE を使用してセッションのロールを変更できます。いずれの場合も、明示的に付与されたロールからのみ選択できます。

デフォルト: NULL

MINS_TO_BYPASS_MFA = 整数

ユーザーの MFA を一時的にバイパスする分数を指定します。

このプロパティを使用すると、 MFA 登録ユーザーの MFA デバイスが使用できない場合、ログイン時に MFA を一時的にバイパスできるようになります。

RSA_PUBLIC_KEY = 文字列

ユーザーの RSA 公開キーを指定します。キーペア認証に使用されます。

RSA_PUBLIC_KEY_2 = 文字列

ユーザーの2番目の RSA 公開キーを指定します。組織が設定した有効期限スケジュールに基づいて、キーペア認証用の公開キーと秘密キーを交代で使用します。

COMMENT = '文字列リテラル'

ユーザーのコメントを指定します。

デフォルト: NULL

オプションのオブジェクトパラメーター(objectParams

NETWORK_POLICY = 文字列

既存の ネットワークポリシー がユーザーに対してアクティブであることを指定します。ネットワークポリシーは、アクセストークンまたは更新トークンの認証コードを交換するとき、および更新トークンを使用して新しいアクセストークンを取得するとき、ユーザー IP アドレスのリストを制限します。

このパラメーターが設定されていない場合、アカウントのネットワークポリシー(存在する場合)が代わりに使用されます。

オプションのセッションパラメーター(sessionParams

ユーザーに設定する1つ(または複数)のセッションパラメーターの既定値を指定します(空白、コンマ、または改行により区切り)。これらのデフォルトは、ユーザーがSnowflakeにログインしてセッションを開始するたびに設定されます。ユーザーは、セッション内で ALTER SESSION を使用してこれらのデフォルトをいつでも変更できます。

ユーザーに指定できるセッションパラメーターの完全なリスト(デフォルト値を含む)については、 パラメーター をご参照ください。

すべてのデフォルトプロパティ、既定のロール、および最初のログイン後にユーザーが変更する必要がある基本パスワードを持つユーザーを作成します。

CREATE USER user1 PASSWORD='abc123' DEFAULT_ROLE = myrole MUST_CHANGE_PASSWORD = TRUE;