リーダーアカウントの管理

リーダーアカウント(以前の呼称は「読み取り専用アカウント」)を使用すると、SnowflakeのカスタマーではないコンシューマーがSnowflakeのカスタマーにならなくても、プロバイダーはコンシューマーとデータを共有できます。

注釈

このトピックで説明するすべてのタスクは、 ACCOUNTADMIN ロール(またはCREATE ACCOUNT グローバル権限を付与されたロール)を使用して実行する必要があります。

このトピックの内容:

概要

リーダーアカウントを使用すると、データコンシューマーは、アカウントプロバイダーが共有するデータにアクセスし、クエリを実行できます。コンシューマーは設定や使用コストが不要で、Snowflakeとのライセンス契約に署名する必要もありません。

リーダーアカウントは、プロバイダーアカウントによって作成、所有、および管理されます。プロバイダーアカウントは、リーダーアカウントのユーザーに発生したクレジット料金に対するすべての責任を負います。標準のコンシューマーアカウントと同様に、プロバイダーアカウントは 共有 を使用して、データベースをリーダーアカウントと共有します。ただし、リーダーアカウントは、それを作成したプロバイダーアカウントのデータのみを使用できます。

Overview of data sharing reader accounts

リーダーアカウントで制限/許可されているもの

リーダーアカウントは、主にアカウントのプロバイダーが共有するデータのクエリを目的としています。アカウントへの新しいデータの追加やアカウント内の共有データの更新はサポートされていません。そのため、次の DML および DDL コマンドは許可されていません。

他のすべての操作は許可されます。

リーダーアカウントのサポートの提供

リーダーアカウントにはSnowflakeとのライセンス契約がないため、アカウントの一般ユーザーはサポートサービスを利用できません。代わりに、アカウントのプロバイダーが、アカウント内のユーザーからの質問とリクエストを入力し、必要に応じて応答します。

直接質問に答えたり、リクエスト/問題を解決できない場合は、通常のチャネル(サポート契約に記載されているとおり)でSnowflakeサポートチケットを開くことができます。Snowflakeサポートから応答が提供されたら、リーダーアカウントの適切なユーザーに情報を送り返します。

リーダーアカウントのウェブインターフェイス

ACCOUNTADMIN ロール(または CREATE ACCOUNT 権限が付与されたロール)がある場合、Snowflakeウェブインターフェイスの Account Account tab ページを使用して、リーダーアカウントの作成と管理に関連するほとんどのタスクを実行できます。

Reader accounts page in Snowflake web interface

このページでは、次のタスクを実行できます。

  • リーダーアカウントの作成。

  • リーダーアカウントのドロップ。

リーダーアカウント用 DDL

リーダーアカウントの作成と管理を可能にするために、Snowflakeは、次の DDL コマンドをサポートするファーストクラスオブジェクト MANAGED ACCOUNTを提供します。

他のロールの有効化によるリーダーアカウントの作成および管理

デフォルトでは、 ACCOUNTADMIN ロールを持つユーザーのみがリーダーアカウントを作成できるため、アカウントの所有者としてアカウントを管理できます。これらのタスクを他のユーザーに委任することをサポートするために、 CREATE ACCOUNT グローバル権限を他のロール(システム定義またはカスタム)に付与できます。次に、ロールを持つユーザーはリーダーアカウントを作成し、ロールを使用して作成されたアカウントの管理に関連するすべてのタスクを実行できます。

例えば、 SYSADMIN ロールに権限を付与するには、

USE ROLE ACCOUNTADMIN;

GRANT CREATE ACCOUNT ON ACCOUNT TO ROLE SYSADMIN;

SQL を使用したリーダーアカウントの作成と管理

リーダーアカウントの作成

リーダーアカウントを作成するには、 ACCOUNTADMIN ロール(または CREATE ACCOUNT グローバル権限が付与されたロール)および CREATE MANAGED ACCOUNT コマンドを使用します。

コマンドで、アカウントの識別子と、アカウントの管理者としての役割を果たすユーザーを指定します。例:

USE ROLE ACCOUNTADMIN;

CREATE MANAGED ACCOUNT reader_acct1
    ADMIN_NAME = user1 , ADMIN_PASSWORD = 'Sdfed43da!44' ,
    TYPE = READER;

+-------------------------------------------------------------------------------+
| status                                                                        |
|-------------------------------------------------------------------------------|
| {"accountName":"RE47190","loginUrl":"https://re47190.snowflakecomputing.com"} |
+-------------------------------------------------------------------------------+

注意:

  • リーダーアカウントに指定された識別子(この例では reader_acct1 は、アカウントへのアクセスに使用される名前では ありませんロケーター とも呼ばれるアカウント名は、アカウントの作成中にSnowflakeによって生成されます(この例では RE47190 )。

  • リーダーアカウントは、プロバイダーアカウントと同じ Snowflake Edition を使用し、同じ 地域 で作成されます。

  • デフォルトでは、プロバイダーが作成できるリーダーアカウントの総数は20です。制限に達して追加のアカウントを作成する必要がある場合は、 Snowflakeサポート にお問い合わせください。

重要

リーダーアカウントを作成した後、アカウントを使用する準備が整う前に、次の追加タスクを実行する 必要 があります。

  1. 1つ以上の共有にアカウントを追加 して、共有内のSnowflakeのオブジェクトをアカウントと共有できるようにします。

  2. アカウントの構成 をします。

リーダーアカウントのドロップ

リーダーアカウントをドロップするには、 DROP MANAGED ACCOUNT コマンドを使用します。例:

USE ROLE ACCOUNTADMIN;

DROP MANAGED ACCOUNT reader_acct1;

注意

リーダーアカウントをドロップすると、アカウントで作成されたすべてのオブジェクトが削除され、すぐにアカウントへのすべてのアクセスが制限されます。また、リーダーアカウントの総数からアカウントを削除します。

この操作は元に戻すことが できません 。リーダーアカウントをドロップする前に、この点を考慮してください。

リーダーアカウントの表示

アカウント用に作成されたすべてのリーダーアカウントを表示するには、 SHOW MANAGED ACCOUNTS コマンドを使用します。例:

USE ROLE ACCOUNTADMIN;

SHOW MANAGED ACCOUNTS;

このコマンドを使用して、アカウントのリーダーアカウントの総数を監視できます。合計数が制限(20)に達すると、アカウントをドロップするか、 Snowflakeサポート に連絡して制限の引き上げをリクエストする必要がある場合があります。

さらに、 READER_ACCOUNT_USAGE スキーマ( SNOWFLAKE 共有データベース内)のビューを使用して、アカウント用に作成されたリーダーアカウントに関する情報をクエリできます。詳細については、 アカウントの使用 をご参照ください。