Delta Sharingのデータ受信者を管理する
このページでは、プロバイダーがDatabricksで既存のDelta Sharingの受信者を管理する方法について説明します。 受信者と は、データを共有する相手であるユーザーまたはグループの識別情報を表す、名前付きのオブジェクトのことです。
認証情報ファイルからインポートしたプロバイダーオブジェクトを管理しようとしているデータ受信者の場合は、 「データ受信者向けのDelta Sharingプロバイダーの管理」を参照してください。
受信者を作成するには、 「Delta Sharing (Databricks-to-Databricks 共有) のデータ受信者を作成する」 、 「ベアラートークンを使用して Databricks 以外のユーザーの受信者オブジェクトを作成する (オープン共有)」 、または「 Delta Sharing 受信者に対して Open ID Connect (OIDC) フェデレーションを有効にする」を参照してください。株式の管理方法については、 Delta Sharingの株式管理」を参照してください。
受信者に共有へのアクセス権を付与する
受信者を作成し、共有フォルダを作成したら、受信者にそれらの共有フォルダへのアクセス権を付与できます。
受信者に共有アクセス権を付与するには、カタログエクスプローラ、Databricks Unity Catalog CLI、または Databricks ノートブックまたは Databricks SQL クエリエディターの GRANT ON SHARE SQL コマンドを使用できます。
必要な権限 :以下のいずれか:
- メタストア管理者。
- 共有オブジェクトと受信者オブジェクト ((
USE SHARE+SET SHARE PERMISSION) または共有の所有者) および (USE RECIPIENTまたは受信者の所有者) の両方に対する委任されたアクセス許可または所有権。
手順については、 「Delta Sharing データ共有へのアクセスを管理する (プロバイダー向け)」を参照してください。
受信者を表示
受信者のリストを表示するには、カタログ エクスプローラー、 Databricks Unity Catalog CLI 、またはDatabricksノートブックまたはDatabricks SQLクエリ エディターのSHOW RECIPIENTS SQLコマンドを使用できます。
必要な権限 :メタストア内のすべての受信者を表示するには、 USE RECIPIENT権限が必要です。他のユーザーは、自分が所有する受信者のみにアクセスできます。
- Catalog Explorer
- SQL
- CLI
-
Databricks ワークスペースで、
カタログ をクリックします。
-
カタログ ウィンドウの上部にある
歯車アイコンをクリックし、 Delta Sharing を選択します。
または、右上隅の 「共有」> Delta Sharing をクリックします。
-
「自分が共有したファイル」 タブで、 「受信者」 をクリックします。
ノートブックまたは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)。 - 受信者がベアラーとのオープン共有を使用している場合 : 有効期間、アクティベーションリンク、アクティベーションステータス(認証情報がダウンロードされたかどうか)、および割り当てられている場合はIPアクセスリスト。
- 受信者がOIDCフェデレーションでオープン共有を使用する場合:受信者エンドポイント、MTLSエンドポイント、フェデレーションポリシー、および割り当てられている場合はIPアクセスリスト。
- 受信者がDatabricks-to-Databricks共有を使用している場合:受信者のUnity Catalogメタストアのクラウド、リージョン、メタストアID、およびアクティベーションステータス。
- 受信者のプロパティ(カスタムプロパティを含む)。受信者のプロパティの管理を参照してください。
- Catalog Explorer
- SQL
- CLI
-
Databricks ワークスペースで、
カタログ をクリックします。
-
カタログ ウィンドウの上部にある
歯車アイコンをクリックし、 Delta Sharing を選択します。
または、右上隅の 「共有」> Delta Sharing をクリックします。
-
自分が共有したユーザー タブで、 受信者 をクリックし、受信者を選択します。
ノートブックまたは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 ワークスペースで、
カタログ をクリックします。
-
カタログ ウィンドウの上部にある
歯車アイコンをクリックし、 Delta Sharing を選択します。
または、右上隅の 「共有」> Delta Sharing をクリックします。
-
自分が共有したユーザー タブで、 受信者 をクリックし、受信者を選択します。
-
「共有」 タブに移動すると、受信者と共有されている共有株式の一覧が表示されます。
ノートブックまたは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 ワークスペースで、
カタログ をクリックします。
-
カタログ ウィンドウの上部にある
歯車アイコンをクリックし、 Delta Sharing を選択します。
または、右上隅の 「共有」> Delta Sharing をクリックします。
-
自分が共有したユーザー タブで、 受信者 をクリックし、受信者を選択します。
-
受取人詳細ページで:
-
所有者を更新してください。
-
コメントを編集または追加する。
-
受取人の名前を変更してください。
クリック
ケバブメニューを選択し、 「名前の変更」 を選択します。
-
受信者のカスタムプロパティを 編集、削除、または追加します。
クリック
受信者プロパティ の横にある編集アイコン。次に、プロパティ名( キー )と 値 を追加します。詳細については、 「受信者プロパティの管理」を参照してください。
-
トークン認証済みの受信者のみ:
- 認証リンク を表示してコピーしてください。アクティベーションリンクを取得するには、こちらをご覧ください。
- 「一時管理」 で、ベアラーをローテーションまたは更新します。 受信者トークンの管理を参照してください。
-
OIDCフェデレーションの受信者のみ:
- OIDCフェデレーションポリシー の下にある 「ポリシーの追加」 をクリックします。Delta Sharingの受信者向けに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
プロパティに関する詳細については、 「受信者のプロパティの管理」を参照してください。
(オプション)アクセスリストを使用して受信者のアクセスを制限する
オープン共有の受信者に対して、受信者のアクセスを制限できるIPアドレスのセットを指定できます。IPアクセスリストを使用してDelta Sharing受信者のアクセスを制限する(オープン共有)を参照してください。
受信者のプロパティを管理する
受信者オブジェクトには、データ共有アクセスを詳細化するために使用できる、事前定義されたプロパティが含まれています。例えば、これらを使って次のようなことができます。
- 異なるテーブルパーティションを異なる受信者と共有することで、複数の受信者間でデータ境界を維持しながら、同じ共有を複数の受信者で使用できるようになります。
- 受信者のプロパティに基づいて、受信者がテーブルデータにアクセスできる範囲を、行レベルまたは列レベルで制限する動的なビューを共有します。
カスタムプロパティを作成することもできます。
定義済みのプロパティはdatabricks.で始まり、以下のものが含まれます。
databricks.accountId: データ受信者が属するDatabricksアカウント ( Databricks-to-Databricks共有のみ)。databricks.metastoreId: データ受信者が属する Unity Catalog メタストア (Databricks間共有のみ)。databricks.nameデータ受信者の名前。
価値がある可能性のあるカスタムプロパティには、たとえばcountryがあります。例えば、受信者にカスタムプロパティ'country' = 'us'を関連付けると、テーブルデータを国別に分割し、そのプロパティが割り当てられている受信者に対して、米国データを含む行のみを共有できます。受信者のプロパティに基づいて行または列へのアクセスを制限する動的なビューを共有することもできます。より詳細な例については、 「受信者プロパティを使用してパーティションフィルタリングを実行する」および「共有に動的ビューを追加して行と列をフィルタリングする」を参照してください。
要件
Databricks Runtime 12.2 以降を実行するSQLウェアハウスまたはコンピュートを使用する必要があります。
受信者の作成または更新時にプロパティを追加します
受信者を作成する際にプロパティを追加したり、既存の受信者のプロパティを更新したりできます。カタログ エクスプローラー、 Databricks Unity Catalog CLI 、またはDatabricksノートブックまたはDatabricks SQLクエリ エディターのSQLコマンドを使用できます。
必要な権限 :メタストア管理者、またはUnity Catalogメタストアに対するCREATE RECIPIENT権限を持つユーザー。
- Catalog Explorer
- SQL
- CLI
カタログエクスプローラーを使用して受信者を作成または更新する場合、次の手順でカスタムプロパティを追加または更新します。
-
受取人の詳細ページに移動してください。
新しい受信者を作成する場合は、 「作成」を クリックするとこのページに移動します。既存の受信者を更新する場合は、次のページにアクセスしてください。
歯車アイコン > Delta Sharing > 自分によって共有された > 受信者を 選択し、受信者を選択します。
-
ページの右下にある 「受信者プロパティ」 の下にある
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コマンドを使用できます。 受信者を削除するには、受信者オブジェクトの所有者である必要があります。
受信者を削除すると、その受信者によって代表されるユーザーは共有データにアクセスできなくなります。受信者がオープンな共有シナリオで使用するトークンは無効になります。
必要な権限 :受信者オブジェクトの所有者。
- Catalog Explorer
- SQL
- CLI
-
Databricks ワークスペースで、
カタログ をクリックします。
-
カタログ ウィンドウの上部にある
歯車アイコンをクリックし、 Delta Sharing を選択します。
または、右上隅の 「共有」> Delta Sharing をクリックします。
-
自分が共有したユーザー タブで、 受信者 をクリックし、受信者を選択します。
-
「受信者」 タブで、受信者を見つけて選択します。
-
クリック
ケバブメニューを選択し、 削除 を選択します。
-
確認ダイアログで、 [削除] をクリックします。
ノートブックまたはDatabricks SQLクエリーエディタで次のコマンドを実行します。
DROP RECIPIENT [IF EXISTS] <recipient-name>;
Databricks CLIを使用して、以下のコマンドを実行してください。
databricks recipients delete <recipient-name>