ユーザーを作成してロールを付与する

紹介

このチュートリアルでは、 SQL コマンドを使用してユーザーを作成し、そのユーザーにロールを付与する方法を説明します。 Snowsight のテンプレートワークシートを使用して、これらのタスクに従って完了させます。

注釈

Snowflakeはこのチュートリアルのサンプルデータに使用されるディスク上のストレージに対して最小限の料金を請求します。このチュートリアルでは、データベースをドロップしてストレージコストを最小限に抑えるステップを示します。

Snowflakeには、サンプルデータをロードしてクエリを実行するために、 仮想ウェアハウス が必要です。稼働中の仮想ウェアハウスはSnowflakeのクレジットを消費します。このチュートリアルでは、無料クレジットを提供する 30日間のトライアルアカウント を使用するため、コストは発生しません。

学習内容

このチュートリアルでは、次の方法を学習します。

  • このチュートリアルで必要なSnowflakeオブジェクトを作成および使用する権限を持つロールを使用します。

  • ユーザーを作成します。

  • ユーザーにロールを付与し、ウェアハウスへのアクセスを許可します。

  • アカウントのユーザーとロールを検索します。

  • 作成したユーザーを削除します。

前提条件

このチュートリアルでは、次を前提としています。

注釈

このチュートリアルは、トライアルアカウントを持つユーザーのみが利用できます。ワークシートのサンプルは、他のタイプのアカウントでは使用できません。

ステップ1: Snowsight を使用してサインインする

公共のインターネット経由で Snowsight にアクセスするには、次を実行します。

  1. サポートされているウェブブラウザーで、https://app.snowflake.comに移動します。

  2. アカウント識別子 またはアカウント URL を入力します。以前に Snowsight にログインしたことがある場合は、選択できるアカウント名が表示されることがあります。

  3. Snowflakeアカウントの認証情報を使用してサインインします。

ステップ2:[テンプレート] ワークシートを開く

ワークシートを使って SQL コマンドを記述し、データベース上で実行することができます。あなたのトライアルアカウントは、このチュートリアルのためにあらかじめロードされたテンプレートにアクセスできます。ワークシートには、ロールコンテキストの設定、ユーザーの作成、ロール権限の付与のために実行する SQL コマンドが含まれています。これはテンプレートワークシートであるため、特定の SQL パラメーターに独自の値を入力するよう求められます。

ワークシートの詳細については、 ワークシートをはじめるにあたり をご参照ください。

ワークシートを開くには:

  1. Projects » Worksheets を選択して、ワークシートのリストを開きます。

  2. [Template] Adding a user and granting roles を開きます。

    ブラウザは次の画像のようになります。

SQL ユーザーワークシート。このチュートリアルの SQL コマンドと説明的なコメントが含まれています。

ステップ3。使用するロールの設定

使用するロールによって権限が決まります。このチュートリアルでは、アカウントでユーザーとロールを作成および管理できるように USERADMIN システムロールを使用します。詳細については、 アクセス制御の概要 をご参照ください。

使用するロールを設定するには、次を実行します。

  1. 開いているワークシートで、 USE ROLE 行にカーソルを置きます。

    USE ROLE USERADMIN;
    
    Copy
  2. ワークシートの右上隅で、 Run を選択します。

    注釈

    このチュートリアルでは、 SQL ステートメントを1つずつ実行します。 Run All を選択しないでください。

ステップ4。ユーザーを作成する

Snowflakeユーザーはログイン認証情報を持っています。ユーザーにロールが付与されると、ユーザーはロールに付与された権限によって、ロールが許可するすべての操作を実行できます。詳細については、 ユーザー管理 をご参照ください。

チュートリアルのこのステップでは、名前、パスワード、その他のプロパティを持つユーザーを作成します。

開いているワークシートで、 CREATE USER 行にカーソルを置き、ユーザー名とその他のパラメーター値を任意に挿入し(以下に例を示す)、 Run を選択します。

MUST_CHANGE_PASSWORD では、値を true に設定し、初回ログイン時にパスワードリセットがリクエストされるようにします。DEFAULT_WAREHOUSE には、 COMPUTE_WH を使用します。

CREATE OR REPLACE USER snowman
PASSWORD = 'sn0wf@ll'
LOGIN_NAME = 'snowstorm'
FIRST_NAME = 'Snow'
LAST_NAME = 'Storm'
EMAIL = 'snow.storm@snowflake.com'
MUST_CHANGE_PASSWORD = true
DEFAULT_WAREHOUSE = COMPUTE_WH;
Copy

このコマンドは次のような出力を返します。

User SNOWMAN successfully created.

実際のSnowflakeアカウントに実際のユーザーを作成する場合、この新しいアカウントにアクセスする必要がある人に以下の情報を安全な方法で送信します。

  • Snowflake Account URL: ユーザーがログインするSnowflakeアカウントリンク。このリンクはブラウザの上部にあります(例: https://app.snowflake.com/myorg/myaccount/myorg はSnowflake組織 ID、 myaccount はアカウント ID です)。

  • LOGIN_NAME。 CREATE USER コマンドで指定したものです。

  • PASSWORD。 CREATE USER コマンドで指定したものです。

ステップ5:ユーザーへのシステムロールとウェアハウスのアクセス付与

ユーザーを作成したので、 SECURITYADMIN ロールを使用してそのユーザーに SYSADMIN ロールを付与し、 COMPUTE_WH ウェアハウスで USAGE を付与することができます。

ロールを別のロールに付与すると、ロール間に「親子」関係が作成されます(ロール階層とも呼ばれます)。ユーザーにロールを付与すると、ユーザーはロールに許可されたすべての操作を(ロールに付与されたアクセス権を介して)実行できます。

SYSADMIN ロールは、アカウントでウェアハウス、データベース、およびデータベースオブジェクトを作成し、それらの権限を他のロールに付与する権限があるシステム定義のロールです。この権限を持つべきユーザーにのみ、このロールを付与してください。その他のシステム定義ロールについては、 アクセス制御の概要 をご参照ください。

ユーザーにロールとウェアハウスへのアクセスを付与するには、次を実行します。

  1. 開いているワークシートで、 USE ROLE 行にカーソルを置き、 Run を選択します。

    USE ROLE SECURITYADMIN;
    
    Copy
  2. カーソルを GRANT ROLE 行に置き、作成したユーザー名を入力して、 Run を選択します。

    GRANT ROLE SYSADMIN TO USER snowman;
    
    Copy
  3. カーソルを GRANT USAGE 行に置き、 Run を選択します。

    GRANT USAGE ON WAREHOUSE COMPUTE_WH TO ROLE SYSADMIN;
    
    Copy

ステップ6:アカウントのユーザーとロールを調べる

これで、 ACCOUNTADMIN ロールを使用して、アカウント内のすべてのユーザーとロールを調べることができます。

ユーザーとロールを調べるには、次を実行します。

  1. 開いているワークシートで、 USE ROLE 行にカーソルを置き、 Run を選択します。

    USE ROLE ACCOUNTADMIN;
    
    Copy
  2. カーソルを SHOW USERS 行に置き、 Run を選択します。

    SHOW USERS;
    
    Copy

    出力は、次の画像に類似したものになります。

    アカウント内のすべてのユーザーを表示します。テーブル出力には、name、created_on、login_name、display_name、first_nameの列があります。
  3. カーソルを SHOW ROLES 行に置き、 Run を選択します。

    SHOW ROLES;
    
    Copy

    出力は、次の画像に類似したものになります。

    アカウントのすべてのロールを表示します。テーブル出力には、created_on、name、is_default、is_current、is_inheritedの列があります。

ステップ7。ユーザーの削除と重要な点の確認

おめでとうございます。トライアルアカウントのこのチュートリアルを完了しました。数分かけて、このチュートリアルで説明されてた重要な点を確認します。詳細は、Snowflakeドキュメントの他のトピックをご参照ください。

ユーザーの削除

もう必要ないのであれば、作成したユーザーを削除することができます。

開いているワークシートで、 DROP USER 行にカーソルを置き、作成したユーザー名を入力し、 Run を選択します。

DROP USER snowman;
Copy

重要な点の確認

要約すると、 Snowsight にあらかじめロードされたワークシートを使って、以下のステップを完了しました。

  1. 使用するロールを設定します。

  2. 新しいユーザーを作成します。

  3. ユーザーにロール権限とウェアハウスへのアクセスを付与します。

  4. アカウントのユーザーとロールを調べます。

  5. 作成したユーザーを削除します。

ユーザーとロールについて覚えておくべき重要なポイントは次のとおりです。

  • アカウントのオブジェクトを作成および管理するには、必要な権限が必要です。このチュートリアルでは、 USERADMIN、SECURITYADMIN、SYSADMIN、および ACCOUNTADMIN システムロールを異なる目的で使用しました。

  • 通常、 ACCOUNTADMIN ロールはオブジェクトの作成には使用されません。代わりに、組織のビジネス機能に合わせてロールの階層を作成することをお勧めします。詳細については、 ACCOUNTADMIN ロールの使用 をご参照ください。

  • ウェアハウスは DML 操作の実行、データのロード、クエリの実行に必要なコンピュートリソースを提供します。このチュートリアルでは、トライアルアカウントに含まれる compute_wh ウェアハウスを使用します。

次の内容

次のリソースを使用して、Snowflakeについて引き続き学習しましょう。