OpenSharingのデータ受信者を管理します
このページでは、プロバイダーがDatabricksで既存のOpenSharing受信者を管理する方法について説明します。受信者とは、データを共有するユーザーまたはグループの識別情報を表す名前付きオブジェクトです。
データ受信者として、認証情報ファイルからインポートしたプロバイダーオブジェクトを管理する場合は、代わりにデータ受信者向けのOpenSharingプロバイダーの管理を参照してください。
受信者を作成するには、OpenSharing のデータ受信者を作成する (Databricks-to-Databricks共有)、ベアラー トークンを使用して非Databricksユーザーの受信者オブジェクトを作成する (Databricks-to-Open共有)、またはOpenSharing受信者向けにOpen ID Connect (OIDC) フェデレーションを有効にするを参照してください。「OpenSharing の共有を管理」を参照してください。
受信者に共有へのアクセスを許可する
受信者の作成および共有の作成後に、受信者にそれらの共有へのアクセス権を付与できます。
受信者に共有アクセス権を付与するには、カタログエクスプローラ、Databricks Unity Catalog CLI、または Databricks ノートブックまたは Databricks SQL クエリエディターの GRANT ON SHARE SQL コマンドを使用できます。
必要な権限 :次のいずれか:
- メタストア管理者。
- 共有オブジェクトと受信者オブジェクト ((
USE SHARE+SET SHARE PERMISSION) または共有の所有者) および (USE RECIPIENTまたは受信者の所有者) の両方に対する委任されたアクセス許可または所有権。
手順については、「OpenSharing データ共有へのアクセスを管理する (プロバイダー向け)」を参照してください。
受信者の表示
受信者のリストを表示するには、カタログエクスプローラー、Databricks Unity Catalog CLI、または Databricks ノートブックまたは Databricks SQL クエリ エディターの SHOW RECIPIENTS SQL コマンドを使用できます。
USE RECIPIENT「**必要な権限**」:メタストア内のすべての受信者を表示するには、 の権限が必要です。他のユーザーは、自身が所有する受信者のみにアクセスできます。
- Catalog Explorer
- SQL
- CLI
-
Databricks ワークスペースで、
カタログ をクリックします。
-
カタログ ウィンドウの上部にある
歯車アイコンをクリックし、 OpenSharing を選択します。
または、右上隅の Share > OpenSharing をクリックします。
-
**自分が共有** タブで、**受信者** をクリックします。
ノートブックまたはDatabricks SQLクエリーエディターで次のコマンドを実行します。必要に応じて、<pattern>をLIKE述語に置き換えます。
SHOW RECIPIENTS [LIKE <pattern>];
Databricks CLI を使用して、次のコマンドを実行します。
databricks recipients list
受信者の詳細を表示
受信者の詳細を表示するには、カタログエクスプローラ、Databricks Unity Catalog CLI、または Databricks ノートブックまたは Databricks SQL クエリエディターの DESCRIBE RECIPIENT SQL コマンドを使用できます。
必要な権限 :メタストア管理者、USE RECIPIENT権限を持つユーザー、または受信者オブジェクト所有者。
詳細は次のとおりです。
- 受信者の作成者、作成タイムスタンプ、コメント、および認証タイプ(
DATABRICKS、TOKEN、OAUTH_CLIENT_CREDENTIALS、またはOIDC_FEDERATION)です。 - 受信者がベアラー トークンでDatabricks to Open Sharingを使用している場合:トークンの有効期間、アクティベーション リンク、アクティベーション ステータス(資格情報がダウンロード済みかどうか)、および割り当てられている場合はIPアクセス リスト。
- 受信者がOIDCフェデレーションでDatabricks-to-Open Sharingを使用している場合、受信者エンドポイント、MTLSエンドポイント、フェデレーションポリシー、および割り当てられている場合はIPアクセスリスト。
- 受信者が Databricks-to-Databricks 共有を使用する場合:受信者の Unity Catalog メタストアのクラウド、リージョン、メタストア ID、およびアクティベーションステータス。
- 受信者プロパティ(カスタム プロパティを含む)。受信者のプロパティを管理するを参照してください。
- Catalog Explorer
- SQL
- CLI
-
Databricks ワークスペースで、
カタログ をクリックします。
-
カタログ ウィンドウの上部にある
歯車アイコンをクリックし、 OpenSharing を選択します。
または、右上隅の Share > OpenSharing をクリックします。
-
自分が共有したユーザー タブで、 受信者 をクリックし、受信者を選択します。
ノートブックまたはDatabricks SQLクエリーエディタで次のコマンドを実行します。
DESCRIBE RECIPIENT <recipient-name>;
Databricks CLI を使用して、次のコマンドを実行します。
databricks recipients get <recipient-name>
受信者の共有権限を表示する
受信者にアクセス権が付与されている共有の一覧を表示するには、カタログエクスプローラ、Databricks CLI、または Databricks ノートブックまたは Databricks SQL クエリ エディターの SHOW GRANTS TO RECIPIENT SQL コマンドを使用できます。
必要な権限 :メタストア管理者、USE RECIPIENT権限を持つユーザー、または受信者オブジェクト所有者。
- Catalog Explorer
- SQL
- CLI
-
Databricks ワークスペースで、
カタログ をクリックします。
-
カタログ ウィンドウの上部にある
歯車アイコンをクリックし、 OpenSharing を選択します。
または、右上隅の Share > OpenSharing をクリックします。
-
自分が共有したユーザー タブで、 受信者 をクリックし、受信者を選択します。
-
受信者と共有されている共有リストを表示するには、**[共有]**タブに移動してください。
ノートブックまたはDatabricks SQLクエリーエディタで次のコマンドを実行します。
SHOW GRANTS TO RECIPIENT <recipient-name>;
Databricks CLI を使用して、次のコマンドを実行します。
databricks recipients share-permissions <recipient-name>
受信者を更新する
受信者を更新するには、カタログエクスプローラ、Databricks Unity Catalog CLI、または Databricks ノートブックまたは Databricks SQL クエリエディターの ALTER RECIPIENT SQL コマンドを使用できます。
更新できるプロパティには、受信者名、所有者、コメント、およびカスタム プロパティが含まれます。
必要な権限 :所有者を更新するには、メタストア管理者であるか、受信者オブジェクトの所有者である必要があります。CREATE RECIPIENT名前を更新するには、 権限を持っているかつ所有者である必要があります。コメントまたはカスタムプロパティを更新するには、所有者である必要があります。
- Catalog Explorer
- SQL
- CLI
-
Databricks ワークスペースで、
カタログ をクリックします。
-
カタログ ウィンドウの上部にある
歯車アイコンをクリックし、 OpenSharing を選択します。
または、右上隅の Share > OpenSharing をクリックします。
-
自分が共有したユーザー タブで、 受信者 をクリックし、受信者を選択します。
-
受信者の詳細ページで:
-
所有者を更新します。
-
コメントを編集または追加します。
-
受信者の名前を変更します。
ケバブメニューをクリックし、 名前の変更 を選択してください。
-
カスタム 受信者プロパティ の編集、削除、または追加
受信者のプロパティ の横にある 編集アイコンをクリックします。次に、プロパティ名 ( キー ) と 値 を追加します。詳細については、受信者のプロパティの管理を参照してください。
-
トークン認証された受信者のみ:
- 認証リンク を表示してコピーします。アクティベーションリンクを取得するを参照してください。
- トークン管理 の下で、ベアラートークンを更新または回転させます。受信者トークンを管理するを参照してください。
-
OIDCフェデレーション受信者のみ:
- **OIDCフェデレーションポリシー**で、**ポリシーを追加**をクリックします。 「オープン共有の受信者に対して Open ID Connect (OIDC) フェデレーションを有効にする」を参照してください。
- 受信者エンドポイント と 受信者MTLSエンドポイント を表示およびコピーします。
-
ノートブックまたはDatabricks SQLクエリエディタで、次のコマンドを1つ以上実行します。
ALTER RECIPIENT <recipient-name> RENAME TO <new-recipient-name>;
ALTER RECIPIENT <recipient-name> OWNER TO <new-owner>;
COMMENT ON RECIPIENT <recipient-name> IS "<new-comment>";
ALTER RECIPIENT <recipient-name> SET PROPERTIES ( <property-key> = property_value [, ...] )
ALTER RECIPIENT <recipient-name> UNSET PROPERTIES ( <property-key> [, ...] )
プロパティの詳細については、受信者のプロパティの管理を参照してください。
受信者名、コメント、所有者、IPアクセスリスト、またはカスタムプロパティへの更新を含むJSONファイルを作成します。
{
"name": "new-recipient-name",
"owner": "someone-else@example.com",
"comment": "something new",
"ip_access_list": {
"allowed_ip_addresses": ["8.8.8.8", "8.8.8.4/10"]
},
"property": {
"country": "us",
"id": "001"
}
}
次に、Databricks CLI を使用して次のコマンドを実行します。<recipient-name> を現在の受信者名に置き換え、update-recipient-settings.json を JSON ファイルのファイル名に置き換えます。
databricks recipients update --json-file update-recipient-settings.json
プロパティの詳細については、受信者のプロパティの管理を参照してください。
(オプション) アクセスリストを使用して受信者のアクセスを制限する
Databricks-to-Open の共有の受信者に対し、アクセスを特定の IP アドレスのセットに制限することができます。IPアクセスリストを使用してOpenSharing受信者のアクセスを制限する(Databricks-to-Open sharing)を参照してください。
受信者のプロパティを管理する
受信者オブジェクトには、データ共有へのアクセスを洗練させるために使用できる事前定義されたプロパティが含まれています。たとえば、それらを使用して次のことができます。
- 異なるテーブルパーティションを異なる受信者と共有することで、同じ共有を複数の受信者と使用し、同時にそれらの間でデータ境界を維持することができます。
- 受信者のプロパティに基づいて、行または列レベルでテーブルデータへの受信者アクセスを制限する動的ビューを共有します。
カスタムプロパティを作成することもできます。
事前定義されたプロパティはdatabricks.で始まり、以下を含みます。
databricks.accountIdデータ受信者が属するDatabricksアカウント (Databricks-to-Databricks共有のみ)。databricks.metastoreId: データ受信者が属する Unity Catalog メタストア (Databricks間共有のみ)。databricks.nameデータ受信者の名前。
価値を持つ可能性のあるカスタム プロパティには、たとえば countryが含まれます。例えば、カスタムプロパティ 'country' = 'us' を受信者に添付する場合、テーブルデータを国別にパーティション分割し、そのプロパティが割り当てられている受信者と、米国のデータを持つ行のみを共有できます。また、受信者のプロパティに基づいて行または列のアクセスを制限する動的ビューを共有することもできます。詳細な例については、「受信者のプロパティを使用してパーティションのフィルター処理を行う」および「動的ビューを共有に追加して行と列をフィルター処理する」を参照してください。
要件
Databricks Runtime 12.2 以降を実行している SQL ウェアハウスまたはコンピュートを使用する必要があります。
受信者を作成または更新するときにプロパティを追加
受信者を作成する際、または既存の受信者に対してプロパティを追加または更新できます。Catalog Explorer、Databricks Unity Catalog CLI、または Databricks ノートブックや Databricks SQL クエリエディターで SQL コマンドを使用できます。
CREATE RECIPIENT**必要な権限**:Unity Catalogメタストアの管理者、または 権限を持つユーザー。
- Catalog Explorer
- SQL
- CLI
Catalog Explorer を使用して受信者を作成または更新する場合は、以下の手順に従ってカスタムプロパティを追加または更新します。
-
受信者の詳細ページに移動します。
新しい受信者を作成する場合、 作成 をクリックすると、このページに移動します。既存の受信者を更新する場合は、
ギアアイコン > OpenSharing > 自分が共有したユーザー > 受信者 をクリックしてこのページに移動し、受信者を選択してください。
-
ページ右下、**受信者のプロパティ**の下で、Databricks 受信者の場合は
**databricks.metastoreID** の横にある、またはオープン受信者の場合は **databricks.name** の横にある 鉛筆アイコンをクリックします。
-
プロパティ名 ( キー ) と 値 を入力してください。
たとえば、共有データを国別にフィルター処理し、この受信者と米国のデータのみを共有したい場合は、「country」という名前のキーを「US」という値で作成できます。
-
保存 をクリックします。
受信者を作成するときにカスタムプロパティを追加するには、ノートブックまたは Databricks SQL クエリエディターで次のコマンドを実行します。
CREATE RECIPIENT [IF NOT EXISTS] <recipient-name>
[USING ID '<sharing-identifier>'] /* Skip this if you are using open sharing */
[COMMENT "<comment>"]
PROPERTIES ( '<property-key>' = '<property-value>' [, ...] );
<property-key> 文字列リテラルまたは識別子にすることができます。<property-value> は文字列リテラルである必要があります。
例えば:
CREATE RECIPIENT acme PROPERTIES ('country' = 'us', 'partner_id' = '001');
既存の受信者のカスタムプロパティを追加、編集、または削除するには、次のいずれかを実行します。
ALTER RECIPIENT <recipient-name> SET PROPERTIES ( '<property-key>' = '<property-value>' [, ...] );
ALTER RECIPIENT <recipient-name> UNSET PROPERTIES ( '<property-key>' );
受信者を作成するときにカスタムプロパティを追加するには、Databricks CLI を使用して次のコマンドを実行します。プレースホルダーの値を置き換えてください:
<recipient-name>受信者の名前です。<property-key>文字列リテラルまたは識別子を指定できます。<property-value>文字列リテラルである必要があります。
databricks recipients create \
--json='{
"name": "<recipient-name>",
"properties_kvpairs": {
"properties": {
"<property-key>": "<property-value>",
}
}
}'
例えば:
databricks recipients create \
--json='{
"name": "<recipient-name>",
"properties_kvpairs": {
"properties": {
"country": "us",
"partner_id":"001"
}
}
}'
既存の受信者のカスタムプロパティを追加または編集するには、createの代わりにupdateを使用します。
databricks recipients update \
--json='{
"name": "<recipient-name>",
"properties_kvpairs": {
"properties": {
"country": "us",
"partner_id":"001"
}
}
}'
受信者のプロパティを表示する
受信者のプロパティを表示するには、受信者の詳細を表示に記載されている手順に従ってください。
受信者を削除する
受信者を削除するには、カタログエクスプローラ、Databricks Unity Catalog CLI、または Databricks ノートブックまたは Databricks SQL クエリ エディターの DROP RECIPIENT SQL コマンドを使用できます。受信者を削除するには、受信者オブジェクトの所有者である必要があります。
受信者を削除すると、受信者が表すユーザーは共有データにアクセスできなくなります。受信者がDatabricks-to-Open Sharingシナリオで使用するトークンは無効になります。
必要なアクセス許可 : 受信者オブジェクトの所有者。
- Catalog Explorer
- SQL
- CLI
-
Databricks ワークスペースで、
カタログ をクリックします。
-
カタログ ウィンドウの上部にある
歯車アイコンをクリックし、 OpenSharing を選択します。
または、右上隅の Share > OpenSharing をクリックします。
-
自分が共有したユーザー タブで、 受信者 をクリックし、受信者を選択します。
-
**[受信者]**タブで、受信者を見つけて選択します。
-
ケバブメニューをクリックし、 削除 を選択します。
-
確認ダイアログで、 [削除] をクリックします。
ノートブックまたはDatabricks SQLクエリーエディタで次のコマンドを実行します。
DROP RECIPIENT [IF EXISTS] <recipient-name>;
Databricks CLI を使用して、次のコマンドを実行します。
databricks recipients delete <recipient-name>