ユーザー管理

セキュリティおよびアカウント管理者(つまり、 SECURITYADMIN 以上のロールを持つユーザー)は、 SQL またはウェブインターフェイスを介してSnowflakeユーザーを作成および管理できます。

  • SQL を使用すると、管理者はユーザーのログイン認証情報やデフォルトの変更など、ユーザーに関連するすべてのタスクを実行できます。

  • ウェブインターフェイスはすべてのユーザー関連タスクをサポートしていませんが、ユーザーを作成し、ユーザーのパスワードのリセットなどの最も一般的なアクティビティを実行するための便利なウィザードを提供します。

このトピックの内容:

注釈

ユーザーを作成、変更、またはドロップできるのは、セキュリティ管理者(つまり、 SECURITYADMIN のロールを持つユーザー)以上です。

Snowflakeのパスワードポリシー

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

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

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

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

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

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

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

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

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

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

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

ユーザーのロール

Snowflakeはロールを使用して、ユーザーがアクセスできるオブジェクト(仮想ウェアハウス、データベース、テーブルなど)を制御します。

  • Snowflakeは、一連の事前定義されたロールと、カスタムロールの階層を定義するためのフレームワークを提供します。

  • すべてのSnowflakeユーザーには、事前に定義された PUBLIC ロールが自動的に割り当てられ、Snowflakeへのログインと基本的なオブジェクトアクセスが可能になります。

  • PUBLIC のロールに加えて、各ユーザーに追加のロールを割り当てることができ、これらのロールの1つを 既定のロール として指定できます。ユーザーの既定のロールにより、ユーザーが開始したSnowflakeセッションで使用されるロールが決まります。ただし、これはデフォルトにすぎません。ユーザーは、セッション内のロールをいつでも変更できます。

  • ロールは、ユーザー作成時またはその後に割り当てることができます。

注意

ユーザーに割り当てる追加のロールを決定し、既定のロールを指定するときは、事前定義された ACCOUNTADMIN のロール(アカウントレベルの管理タスクを実行するために必要)について以下を考慮します。

  • Snowflakeでは、 ACCOUNTADMINの割り当てを厳密に制御するようにお勧めしますが、少なくとも2人のユーザーに割り当てることをお勧めします。

  • ACCOUNTADMIN は 決して ユーザーの既定のロールとして指定されるべきではありません。代わりに、下位レベルの管理ロールまたはカスタムロールをデフォルトとして指定します。

ACCOUNTADMIN のロールに関する詳細とベストプラクティスについては、 アクセス制御の考慮事項 をご参照ください。ロールの一般的な情報については、 Snowflakeのアクセス制御 をご参照ください。

ユーザーを作成する

ウェブインターフェイスまたは SQLを使用してユーザーを作成できます。

注釈

ウェブインターフェイスでは、ユーザーを作成するときにパスワードを指定する必要があります。 CREATE USER コマンドはサポートしていません。

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

ウェブインターフェイスを使用する

  1. Account Account tab » Users をクリックします。

  2. Create ボタンをクリックします。

  3. User Name フィールドに、ユーザーの一意の識別子を入力します。

    注釈

    ユーザー名は、Snowflakeのユーザーの一意の識別子です。ユーザーのログイン名(つまり、Snowflakeにログインするときにユーザーが入力する名前)では ありません 。Snowflakeでは、必要に応じて、ユーザーが異なるユーザー名とログイン名を持つことができます。次の画面でユーザーのログイン名を指定します。

  4. Password および Confirm Password フィールドに、ユーザーのログインパスワードを入力します。

  5. Force Password Change チェックボックスを選択したままにして、ユーザーに次回のログイン時にパスワードの変更を強制します。それ以外の場合は、チェックボックスをオフにします。

  6. Next ボタンをクリックします。 Advanced 画面が開きます。

  7. オプションで、ユーザーの Login NameDisplay Name、および個人情報を入力します。

    注釈

    ユーザーはSnowflakeにログインするためにログイン名が必要です。ログイン名を明示的に指定しない場合、Snowflakeはログイン名としてユーザー名を使用します。

  8. Next ボタンをクリックします。 Preferences 画面が開きます。

  9. オプションで、ユーザーのデフォルトを入力します。

    • 仮想ウェアハウス

    • 名前空間の形式: データベース名 または データベース名.スキーマ名

    • ロール

  10. Finish ボタンをクリックします。Snowflakeは成功メッセージを表示します。

SQLの使用

CREATE USER コマンドを使用してユーザーを作成します。

重要

ユーザーを作成するときに、既定のロールをユーザーに割り当てる場合は、このロールをユーザーに明示的に付与する必要があります。例:

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

GRANT ROLE myrole TO USER janesmith;

GRANT ROLE コマンドを使用すると、単一のユーザーに複数のロールを割り当てることができます。現在、ウェブインターフェイスは同機能をサポートしていません。

ユーザーのパスワードのリセット

管理者は、ウェブインターフェイスまたは SQLを使用してユーザーのパスワードを変更できます。

注釈

ユーザーは、ウェブインターフェイスからのみ自分のパスワードを変更できます。詳細については、 パスワードの変更/(セッション)ロールの切り替え/ログアウト をご参照ください。

ウェブインターフェイスを使用する

  1. Account Account tab » Users をクリックします。

  2. ユーザー行をクリックして選択し、 Reset Password ボタンをクリックします。 Reset Password ダイアログが開きます。

  3. ユーザーの新しいログインパスワードを入力し、パスワードを確認します。

  4. Force Password Change チェックボックスを選択したままにして、ユーザーに次回のログイン時にパスワードの変更を強制します。それ以外の場合は、チェックボックスをオフにします。

  5. Finish ボタンをクリックします。

SQLの使用

ALTER USER コマンドを使用して、ユーザーのパスワードを入力します。例:

ALTER USER janesmith SET PASSWORD = 'H8MZRqa8gEe/kvHzvJ+Giq94DuCYoQXmfbb$Xnt' MUST_CHANGE_PASSWORD = TRUE;

または、 ALTER USER ...RESET PASSWORD URL を生成してユーザーと共有する構文を使用します。 URL は、ユーザーが新しいパスワードを入力できるウェブページを開きます。例:

ALTER USER janesmith RESET PASSWORD;

注釈

  • 生成された URL は1回の使用に対してのみ有効であり、4時間後に有効期限が切れます。

  • ALTER USER ...RESET PASSWORD ステートメントの実行は、現在のパスワードを無効にしません。ユーザーは、新しいパスワードが設定されるまで、古いパスワードを引き続き使用できます。

ユーザーのパスワード変更機能の無効化

ユーザーは、右上(ログイン名の横)のドロップダウンメニューの » Change Password をクリックして、ウェブインターフェイスでSnowflakeのパスワードを変更します。 Select a New Password ダイアログが開きます。ダイアログは現在のパスワードと新しいパスワードを受け入れます。

オプションで、アカウント内のユーザーが自分のパスワードを変更する機能を無効にすることができます。アカウント管理者は、 Account Account tab » Users のウェブインターフェイスを使用して、または SQL を介し ALTER USER コマンドを使用して、引き続きユーザーパスワードを変更できます。

この変更をリクエストするには、 Snowflakeサポート にお問い合わせください。

ユーザーの無効化/有効化

ユーザーを無効にすると、ユーザーはSnowflakeにログインできなくなります。ウェブインターフェイスまたは SQLを使用して、ユーザーを無効にできます。

ウェブインターフェイスを使用する

  1. Account Account tab » Users をクリックします。

  2. ユーザー行をクリックして選択し、 Disable User ボタンをクリックします。確認ダイアログが開きます。

  3. Yes をクリックして、ユーザーを無効にします。

ユーザーを有効にするには、同じ手順に従いますが、 Enable User ボタンをクリックします。

SQLの使用

ALTER USER コマンドを使用して、ユーザーを無効または有効にします。例:

  • ユーザーを無効にします。

    ALTER USER janesmith SET DISABLED = TRUE;
    
  • ユーザーを有効にします。

    ALTER USER janesmith SET DISABLED = FALSE;
    

ユーザーのロック解除

ユーザーログインが5回連続して失敗した場合、ユーザーは一定期間(現在は15分)アカウントからロックアウトされます。一定の時間が経過すると、システムは自動的にロックを解除し、ユーザーは再度ログインを試みることができます。

時間が経過する前にユーザーのロックを解除するには、 ALTER USER コマンドを使用してタイマーをリセットできます。

次の例では、タイマーを0にリセットし、ユーザー janesmith をすぐにロック解除します。

ALTER USER janesmith SET MINS_TO_UNLOCK= 0;

ちなみに

単一のロールですべてのSnowflakeユーザーに対する OWNERSHIP 権限がある場合、複数のユーザーにロールを付与することをお勧めします。これにより、ロールのメンバーがロックアウトされた場合、別のメンバーがそのユーザーのロックを解除できます。

ユーザーのセッションパラメーターの変更

  • ユーザーのセッションパラメーターを表示するには、次の SQL 構文を使用します。

    SHOW PARAMETERS [ LIKE '<pattern>' ] FOR USER <name>
    
  • ユーザーのセッションパラメーターを変更するには、次の構文を使用します。

    ALTER USER <name> SET <session_param> = <value>
    

    たとえば、ユーザーがタイムアウトせずに無期限にSnowflakeに接続したままにできるようにします。

    ALTER USER `janesmith` SET CLIENT_SESSION_KEEP_ALIVE = TRUE;
    
  • ユーザーのセッションパラメーターをデフォルト値にリセットするには、次の構文を使用します。

    ALTER USER <name> UNSET <session_param>
    

他のユーザープロパティの変更

ALTER USER コマンドを使用して、他のすべてのユーザープロパティを変更できます。例:

  • ユーザー janesmith の姓を Jones に変更します。

    ALTER USER janesmith SET LAST_NAME = 'Jones';
    
  • ユーザー janesmith のデフォルトのウェアハウス、名前空間、およびロールを設定または変更します。

    ALTER USER janesmith SET DEFAULT_WAREHOUSE = 'mywarehouse' DEFAULT_NAMESPACE = `mydatabase.myschema` DEFAULT_ROLE = `myrole`;
    

ユーザーの表示

SQLを使用してユーザーに関する情報を表示できます。

DESCRIBE USER または SHOW USERS コマンドを使用して、1人以上のユーザーに関する情報を表示します。

例:

DESC USER janeksmith;

ユーザーのドロップ

ユーザーをドロップすると、Snowflakeからユーザー認証情報が削除されます。ユーザーが作成したオブジェクトは、オブジェクトの作成時にユーザーのアクティブなロールによって実際に所有されているため、ユーザーをドロップしても、作成したオブジェクトには影響しません。 ロール階層 で同じロールまたはそれ以上のロールを割り当てられた別のユーザーは、オブジェクトを管理したり、所有権を別のロールに移したりできます。

ウェブインターフェイスを使用する

  1. Account Account tab » Users をクリックします。

  2. ユーザー行をクリックして選択し、 Drop ボタンをクリックします。確認ダイアログが開きます。

  3. Yes をクリックしてユーザーをドロップします。

SQLの使用

DROP USER コマンドを使用してユーザーをドロップします。

DROP USER janesmith;