レジストリ¶
概要¶
コラボレーションでテンプレートやデータ提供などのリソースを使用するには、まずレジストリに登録する必要があります。レジストリは、そうしたリソースを格納するように設計されたアカウントレベルのコンテナです。一旦登録されると、レジストリ内のリソースは、レジストリへのアクセス権とその特定のコラボレーションに必要なリンク作成権限の両方を持つアカウント内のユーザーなら誰でも、コラボレーションにリンクすることができるようになります。特に、レジストリは特定のコラボレーションから独立しています。登録されたリソースは、そのアカウント内の任意の数のコラボレーションにリンクすることも、まったくリンクしないこともできます。
各Snowflakeアカウントは、デフォルトのレジストリをサポートしています。アカウント用に追加のカスタムレジストリを作成できます。カスタムレジストリは、リソースへのアクセスをグループ化および管理するのに優れた方法です。例えば、販売データ用に1つのカスタムレジストリを作成し、支出データ用に別のカスタムレジストリを作成し、 DCR 権限およびカスタム RBAC ロール 経由でこれらのレジストリへのアクセスを適切なユーザーに付与することができます。
レジストリルール¶
レジストリに関する主なルールは次のとおりです。
レジストリはアカウントレベルのオブジェクトです。ユーザーは、自分のアカウントのレジストリのみを表示し、アクセスできます。ただし、レジストリ内のリソースをコラボレーションにリンクすると、そのリソースは仕様に従ってアクセスできるすべての人に表示されます。リソースを含んでいるレジストリへのアクセスは必要ありません。
各カスタムレジストリは、単一のリソースタイプ(テンプレート、データ提供など)をサポートしています。リソース型はレジストリの作成時に指定されます。デフォルトのレジストリは、任意のリソースタイプをサポートしています。
アカウントで作成できるカスタムレジストリの数に制限はありません。
リソースを登録するときに、任意のレジストリ名パラメーターを使用してカスタムレジストリを指定できます。カスタムレジストリを指定しない場合、リソースはアカウントのデフォルトレジストリに登録されます。
すべてのユーザーは、アカウントのデフォルトレジストリにアクセスできます。ただし、カスタムレジストリは、最初は作成者にのみ公開されており、追加のユーザーには
GRANT_PRIVILEGE_ON_OBJECT_TO_ROLEを呼び出して明示的にアクセスを付与する必要があります。アカウントは、同じリソースタイプを格納する複数のレジストリを持つことができます。
レジストリに最大リソース数はありません。
リソースは、その種類のリソースについて、そのアカウントのすべてのレジストリで一意の名前を持っている必要があります。例えば、同じアカウントに
salesという名前のテンプレートとsalesという名前のデータ提供を持つことができますが、同じアカウントの同じレジストリ、または異なるレジストリにsalesという名前のテンプレートを2つ持つことはできません。リソース名は仕様で最上位のname値として定義されています。2つの異なるアカウントが、同じ名前とタイプのリソースをコラボレーションにリンクする場合、それは許可されます。コラボレーション仕様には同じ名前のリソースが表示されますが、システムはどのリソースが意図されているかを知ることができます。その名前のリソースは、コラボレーションにリソースをリンクしたアカウントから使用されます。
例¶
この例では、カスタムレジストリを作成し、そこにテンプレートを登録し、新しいロールにそのレジストリへの読み取りアクセスを付与します。そのロールを持つユーザーは、そのレジストリのテンプレートをコラボレーションにリンクすることができます。