ユーザー管理¶
ユーザー管理者は、 SQL またはウェブインターフェイスを介してSnowflakeユーザーを作成および管理できます。
SQL を使用すると、管理者はユーザーのログイン認証情報やデフォルトの変更など、ユーザーに関連するすべてのタスクを実行できます。
ウェブインターフェイスはすべてのユーザー関連タスクをサポートしていませんが、ユーザーを作成し、ユーザーのパスワードのリセットなどの最も一般的なアクティビティを実行するための便利なウィザードを提供します。
このトピックの内容:
ユーザーの作成と変更に必要な権限¶
アカウントのユーザーを管理するには、次のロールまたは権限が必要です。
- ユーザーの作成
USERADMIN システムロールは、 SQL(CREATE USER)を使用してユーザーを作成できます。
この目的でカスタムロールを使用する場合は、アカウントの CREATE USER 権限をこのロールに付与してください。
- ユーザーの変更
ユーザーに対する OWNERSHIP 権限を持つロール、またはそれ以上のロールのみが、 SQL (ALTER USER)を使用してほとんどのユーザープロパティを変更できます。さらに、ロールにはグローバル CREATE USER 権限が必要です。
Snowflakeのパスワードポリシー¶
パスワードには、空白文字や感嘆符(!
)、パーセント記号(%
)、アスタリスク(*
)などの特殊文字(英数字以外の文字)を含め、256文字までの大文字と小文字が区別される文字列を使用できます。
ユーザーを最初に作成する ときに、以下で説明する最小要件を満たさないユーザーに対して弱いパスワードを設定することができます(例: 'test12345'
)。この機能により、管理者は作成プロセス中に、ユーザーの汎用パスワードを使用するオプションを利用できるようになります。このパスウェイを選択した場合は、 MUST_CHANGE_PASSWORD
プロパティを TRUE
に設定して、ユーザーが最初のログインを含むSnowflakeへの次回のログイン時に、パスワードを変更するように要求することを 強く お勧めします。
さらに、Snowflakeでは、初期パスワードなしでのユーザー作成を許可し、新しいユーザーがシステムにログインできないようにするビジネスプロセスをサポートします。これが発生した場合、ユーザーの PASSWORD
プロパティ値は NULL
です。ただし、一般的な規則としてSnowflakeでは、ユーザーが初期パスワードと合わせて作成されることを想定しています。
既存のパスワードをリセット (例: 'test12345'
を 'q@-*DaC2yjZoq3Re4JYX'
に変更)するコンテキストの場合、Snowflakeは、 ALTER USER コマンドと ウェブインターフェイス を使用する際に、最小要件として次のパスワードポリシーを適用します。
少なくとも8文字の長さが必要です。
少なくとも数字1つを含める必要があります。
少なくとも1つの大文字と1つの小文字を含める必要があります。
Snowflakeはできるだけ強力なパスワードを作成するために、次のガイドラインを 強く 推奨しています。
Snowflake用に一意のパスワードを作成します(つまり、他のシステムまたはアカウントからのパスワードを再利用しない)。
8文字以上を使用してください。
複数のランダムな大文字、小文字混合の文字、数字、および空白を含む特殊文字を含めます。
推測しやすい一般的なパスワード、名前、数字、または日付は使用しないでください。
最後に、ユーザーログインの最高レベルのセキュリティを構成するには、ユーザーを MFA に登録する ことをお勧めします。
ユーザーのロール¶
Snowflakeはロールを使用して、ユーザーがアクセスできるオブジェクト(仮想ウェアハウス、データベース、テーブルなど)を制御します。
Snowflakeは、一連の事前定義されたロールと、カスタムロールの階層を定義するためのフレームワークを提供します。
すべてのSnowflakeユーザーには、事前に定義された PUBLIC ロールが自動的に割り当てられ、Snowflakeへのログインと基本的なオブジェクトアクセスが可能になります。
PUBLIC のロールに加えて、各ユーザーに追加のロールを割り当てることができ、これらのロールの1つを 既定のロール として指定できます。ユーザーの既定のロールにより、ユーザーが開始したSnowflakeセッションで使用されるロールが決まります。ただし、これはデフォルトにすぎません。ユーザーは、セッション内のロールをいつでも変更できます。
ロールは、ユーザー作成時またはその後に割り当てることができます。
注意
ユーザーに割り当てる追加のロールを決定し、既定のロールを指定するときは、事前定義された ACCOUNTADMIN のロール(アカウントレベルの管理タスクを実行するために必要)について以下を考慮します。
Snowflakeでは、 ACCOUNTADMINの割り当てを厳密に制御するようにお勧めしますが、少なくとも2人のユーザーに割り当てることをお勧めします。
ACCOUNTADMIN は 決して ユーザーの既定のロールとして指定されるべきではありません。代わりに、下位レベルの管理ロールまたはカスタムロールをデフォルトとして指定します。
ACCOUNTADMIN のロールに関する詳細とベストプラクティスについては、 アクセス制御の考慮事項 をご参照ください。ロールの一般的な情報については、 Snowflakeのアクセス制御 をご参照ください。
ユーザーを作成する¶
ウェブインターフェイスまたは SQLを使用してユーザーを作成できます。
注釈
ウェブインターフェイスでは、ユーザーを作成するときにパスワードを指定する必要があります。 CREATE USER コマンドはサポートしていません。
Snowflakeのパスワードの詳細については、 Snowflakeパスワードポリシー (このトピック内)をご参照ください。
ウェブインターフェイスの使用¶
Create ボタンをクリックします。
User Name フィールドに、ユーザーの一意の識別子を入力します。
注釈
ユーザー名は、Snowflakeのユーザーの一意の識別子です。ユーザーのログイン名(つまり、Snowflakeにログインするときにユーザーが入力する名前)では ありません 。Snowflakeでは、必要に応じて、ユーザーが異なるユーザー名とログイン名を持つことができます。次の画面でユーザーのログイン名を指定します。
Password および Confirm Password フィールドに、ユーザーのログインパスワードを入力します。
Force Password Change チェックボックスを選択したままにして、ユーザーに次回のログイン時にパスワードの変更を強制します。それ以外の場合は、チェックボックスをオフにします。
Next ボタンをクリックします。 Advanced 画面が開きます。
オプションで、ユーザーの Login Name、 Display Name、および個人情報を入力します。
注釈
ユーザーはSnowflakeにログインするためにログイン名が必要です。ログイン名を明示的に指定しない場合、Snowflakeはログイン名としてユーザー名を使用します。
Next ボタンをクリックします。 Preferences 画面が開きます。
オプションで、ユーザーのデフォルトを入力します。
仮想ウェアハウス
名前空間の形式:
データベース名
またはデータベース名.スキーマ名
ロール
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を使用してユーザーのパスワードを変更できます。
注釈
ユーザーは、ウェブインターフェイスからのみ自分のパスワードを変更できます。詳細については、 パスワードの変更/(セッション)ロールの切り替え/ログアウト をご参照ください。
ウェブインターフェイスの使用¶
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 » Users のウェブインターフェイスを使用して、または SQL を介し ALTER USER コマンドを使用して、引き続きユーザーパスワードを変更できます。
この変更をリクエストするには、 Snowflakeサポート にお問い合わせください。
ユーザーの無効化/有効化¶
ユーザーを無効にすると、ユーザーはSnowflakeにログインできなくなります。ウェブインターフェイスまたは SQLを使用して、ユーザーを無効にできます。
ウェブインターフェイスの使用¶
ユーザー行をクリックして選択し、 Disable User ボタンをクリックします。確認ダイアログが開きます。
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 DEFAULT_SECONDARY_ROLES = ('ALL');
ユーザーの表示¶
SQLを使用してユーザーに関する情報を表示できます。
DESCRIBE USER または SHOW USERS コマンドを使用して、1人以上のユーザーに関する情報を表示します。
例:
DESC USER janeksmith;