このページでは、プロバイダーが Azure Databricks で既存の OpenSharing 受信者を管理する方法について説明します。 受信者は、データを共有するユーザーまたはグループの ID を表す名前付きオブジェクトです。
資格情報ファイルからインポートしたプロバイダー オブジェクトを管理するデータ受信者の場合は、「データ 受信者の OpenSharing プロバイダーの管理 」を参照してください。
受信者を作成するには、OpenSharing 用のデータ受信者を作成する(Databricks-to-Databricks 共有)、ベアラー トークンを使用して Databricks 以外のユーザー用の受信者オブジェクトを作成する(Databricks-to-Open 共有)、または OpenSharing 受信者の Open ID Connect(OIDC)フェデレーションを有効にするを参照してください。 共有を管理するには、「 OpenSharing の共有を管理する」を参照してください。
共有へのアクセス権を受信者に付与する
受信者を作成し、 共有を作成したら、その共有へのアクセス権を受信者に付与できます。
共有へのアクセスを受信者に許可するには、カタログ エクスプローラーまたは Databricks Unity Catalog CLI を使用するか、Azure Databricks ノートブックまたは Databricks SQL クエリ エディターで GRANT ON SHARE SQL コマンドを使用できます。
必要なアクセス許可: 次のいずれか。
- メタストア管理者。
- 共有オブジェクトと受信者オブジェクトの両方に対する委任されたアクセス許可または所有権 ((
USE SHARE+SET SHARE PERMISSION) または共有所有者) かつ (USE RECIPIENTまたは受信者所有者)。
手順については、「 OpenSharing データ共有へのアクセスの管理 (プロバイダー向け)」を参照してください。
受信者を表示する
受信者の一覧を表示するには、カタログ エクスプローラーまたは Databricks Unity Catalog CLI を使用するか、Azure Databricks ノートブックまたは Databricks SQL クエリ エディターで SHOW RECIPIENTS SQL コマンドを使用できます。
必要なアクセス許可: メタストア内のすべての受信者を表示するには、 USE RECIPIENT 権限が必要です。 他のユーザーは、自分が所有する受信者にのみアクセスできます。
カタログ エクスプローラー
Azure Databricks ワークスペースで、
Catalog をクリックします。
[カタログ] ウィンドウの上部にある
をクリックします。歯車アイコンをクリックし、[OpenSharing] を選択します。
または、右上隅の [ 共有] > [OpenSharing] をクリックします。
[自分と共有] タブで、[受信者] をクリックします。
SQL
ノートブックまたは Databricks SQL クエリ エディターで次のコマンドを実行します。 必要に応じて、<pattern> をLIKE の述語 に置き換えます。
SHOW RECIPIENTS [LIKE <pattern>];
CLI
Databricks CLI を使用して次のコマンドを実行します。
databricks recipients list
受信者の詳細を表示する
受信者に関する詳細を表示するには、カタログ エクスプローラーまたは Databricks Unity Catalog CLI を使用するか、Azure Databricks ノートブックまたは Databricks SQL クエリ エディターで DESCRIBE RECIPIENT SQL コマンドを使用できます。
必要なアクセス許可: メタストア管理者、 USE RECIPIENT 特権を持つユーザー、または受信者オブジェクトの所有者。
詳細には次のものが含まれます。
- 受信者の作成者、作成タイムスタンプ、コメント、認証の種類 (
DATABRICKS、TOKEN、OAUTH_CLIENT_CREDENTIALS、またはOIDC_FEDERATION)。 - 受信者がベアラー トークンを使用した Databricks-to-Open 共有を使用している場合: トークンの有効期間、有効化リンク、有効化ステータス(認証情報がダウンロードされたかどうか)、および割り当てられている場合は IP アクセス リスト。
- 受信者が OIDC フェデレーションと Databricks-to-Open 共有を使用している場合: 受信者エンドポイント、MTLS エンドポイント、フェデレーション ポリシー、IP アクセス リスト (割り当てられている場合)。
- 受信者が Databricks 間共有を使用している場合: 受信者の Unity Catalog メタストアのクラウド、リージョン、メタストア ID、およびアクティブ化の状態。
- カスタム プロパティを含む、受信者のプロパティ。 「受信者のプロパティを管理する」を参照してください。
カタログ エクスプローラー
Azure Databricks ワークスペースで、
Catalog をクリックします。
[カタログ] ウィンドウの上部にある
をクリックします。歯車アイコンをクリックし、[OpenSharing] を選択します。
または、右上隅の [ 共有] > [OpenSharing] をクリックします。
[自分と共有] タブで、[受信者] をクリックし、受信者を選択します。
SQL
ノートブックまたは Databricks SQL クエリ エディターで次のコマンドを実行します。
DESCRIBE RECIPIENT <recipient-name>;
CLI
Databricks CLI を使用して次のコマンドを実行します。
databricks recipients get <recipient-name>
受信者の共有アクセス許可を表示する
受信者がアクセスを許可されている共有の一覧を確認するには、カタログ エクスプローラー、Databricks CLI、または Azure Databricks ノートブックや Databricks SQL クエリ エディターでの SHOW GRANTS TO RECIPIENT SQL コマンドを使用できます。
必要なアクセス許可: メタストア管理者、 USE RECIPIENT 特権を持つユーザー、または受信者オブジェクトの所有者。
カタログ エクスプローラー
Azure Databricks ワークスペースで、
Catalog をクリックします。
[カタログ] ウィンドウの上部にある
をクリックします。歯車アイコンをクリックし、[OpenSharing] を選択します。
または、右上隅の [ 共有] > [OpenSharing] をクリックします。
[自分と共有] タブで、[受信者] をクリックし、受信者を選択します。
[共有] タブに移動して、受信者と共有されている共有の一覧を表示します。
SQL
ノートブックまたは Databricks SQL クエリ エディターで次のコマンドを実行します。
SHOW GRANTS TO RECIPIENT <recipient-name>;
CLI
Databricks CLI を使用して次のコマンドを実行します。
databricks recipients share-permissions <recipient-name>
受信者を更新する
受信者を更新するには、カタログ エクスプローラーまたは Databricks Unity Catalog CLI を使用するか、Azure Databricks ノートブックまたは Databricks SQL クエリ エディターで ALTER RECIPIENT SQL コマンドを使用できます。
更新できるプロパティには、受信者名、所有者、コメント、カスタム プロパティがあります。
必要なアクセス許可: 所有者を更新するには、メタストア管理者または受信者オブジェクト所有者である必要があります。 名前を更新するには、 CREATE RECIPIENT 特権 があり、 所有者である必要があります。 コメントまたはカスタム プロパティを更新するには、所有者である必要があります。
カタログ エクスプローラー
Azure Databricks ワークスペースで、
Catalog をクリックします。
[カタログ] ウィンドウの上部にある
をクリックします。歯車アイコンをクリックし、[OpenSharing] を選択します。
または、右上隅の [ 共有] > [OpenSharing] をクリックします。
[自分と共有] タブで、[受信者] をクリックし、受信者を選択します。
受信者の詳細ページで、次のことを行います。
所有者を更新する。
コメントを編集または追加する。
受信者の名前を変更する。
をクリックします。[Kebab] メニューをクリックし、[名前の変更] を選択します。
カスタムの受信者のプロパティを編集、削除、追加する。
[
Edit icon受信者のプロパティ] の横にある の編集アイコンをクリックします。 次に、プロパティ名 (キー) と値を追加します。 詳細については、「受信者のプロパティを管理する」を参照してください。トークン認証された受信者のみ:
- [認証] リンクを表示してコピーします。 アクティブ化リンクを取得するを参照してください
- [ トークンの管理] で、ベアラー トークンをローテーションまたは更新します。 受信者トークンの管理を参照してください。
OIDC フェデレーション受信者のみ:
- OIDC フェデレーション ポリシーで、[ポリシーの追加] をクリックします。 OpenSharing 受信者の Open ID Connect (OIDC) フェデレーションを有効にするを参照してください。
- 受信者エンドポイントと受信者 MTLS エンドポイントを表示してコピーします。
SQL
ノートブックまたは 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> [, ...] )
プロパティの詳細については、「受信者のプロパティを管理する」を参照してください。
CLI
受信者名、コメント、所有者、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 から Open への共有受信者の制限付き IP アドレスセットへの受信者アクセスを制限できます。 IP アクセス リストを使用した OpenSharing 受信者アクセスの制限 (Databricks から Open への共有) を参照してください。
受信者のプロパティを管理する
受信者オブジェクトには、データ共有アクセスを調整するために使用できる定義済みのプロパティが含まれています。 たとえば、それらを使用して、以下を行うことができます。
- 異なるテーブル パーティションをさまざまな受信者と共有します。これにより、複数の受信者との間でデータ境界を維持しながら、同じ共有を使用できます。
- 受信者のプロパティに基づいて、行または列レベルで受信者のテーブル データへのアクセスを制限する動的ビューを共有します。
また、カスタム プロパティを作成することもできます。
定義済みのプロパティは databricks. で始まり、以下のものがあります。
-
databricks.accountId: データ受信者が属する Azure Databricks アカウント (Databricks から Databricks への共有のみ)。 -
databricks.metastoreId: データ受信者が属する Unity Catalog メタストア (Databricks から Databricks への共有のみ)。 -
databricks.name: データ受信者の名前。
役立つカスタム プロパティとして、country などが挙げられます。 たとえば、カスタム プロパティ 'country' = 'us' を受信者に追加すると、国ごとにテーブル データをパーティション分割し、そのプロパティが割り当てられている受信者とは米国のデータを持つ行のみを共有できます。 受信者のプロパティに基づいて行または列のアクセスを制限する動的ビューを共有することもできます。 より詳細な例については、「受信者のプロパティを使用してパーティションのフィルター処理を行う」および「動的ビューを共有に追加して、行と列のフィルター処理を行う」を参照してください。
必要条件
Databricks Runtime 12.2 以降を実行している SQL ウェアハウスまたはコンピューティングを使用する必要があります。
受信者の作成または更新時にプロパティを追加する
受信者の作成時にプロパティを追加したり、既存の受信者のプロパティを更新したりできます。 カタログ エクスプローラーや Databricks Unity Catalog CLI を使用するか、Azure Databricks ノートブックまたは Databricks SQL クエリ エディターで SQL コマンドを使用できます。
必要なアクセス許可: メタストア管理者、または Unity Catalog メタストアの CREATE RECIPIENT 特権を持つユーザー。
カタログ エクスプローラー
カタログ エクスプローラーを使用して受信者を作成または更新する場合は、次の操作を行ってカスタム プロパティを追加または更新します。
[Recipient details] (受信者の詳細) ページに移動します。
新しい受信者を作成する場合は、[作成] をクリックした後、このページに移動します。 既存の受信者を更新する場合、
歯車アイコン > [ OpenSharing] > [自分と共有] > [受信者] をクリックして、受信者を選択してこのページに移動します。
ページの右下にある「受信者のプロパティ」で、Azure Databricks 受信者については
Pencil icon.databricks.metastoreID の横にある を、または開いている受信者については databricks.name の横にある 鉛筆アイコン をクリックします。
プロパティ名 (キー) と値を入力します。
たとえば、国別に共有データをフィルター処理し、米国のデータのみをこの受信者と共有する場合は、"US" という値を持つ "country" という名前のキーを作成できます。
保存 をクリックします。
SQL
受信者の作成時にカスタム プロパティを追加するには、ノートブックまたは 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>' );
CLI
受信者の作成時にカスタム プロパティを追加するには、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"
}
}
}'
既存の受信者のカスタム プロパティを追加または編集するには、update ではなく create を使用します。
databricks recipients update \
--json='{
"name": "<recipient-name>",
"properties_kvpairs": {
"properties": {
"country": "us",
"partner_id":"001"
}
}
}'
受信者のプロパティを表示する
受信者のプロパティを表示するには、「受信者の詳細を表示する」の手順に従います。
受信者を削除する
受信者を削除するには、カタログ エクスプローラーまたは Databricks Unity Catalog CLI を使用するか、Azure Databricks ノートブックまたは Databricks SQL クエリ エディターで DROP RECIPIENT SQL コマンドを使用できます。 受信者を削除するには、受信者オブジェクト所有者である必要があります。
受信者を削除すると、受信者で表されるユーザーは共有データにアクセスできなくなります。 受信者が Databricks-to-Open 共有シナリオで使用するトークンは無効化されます。
必要なアクセス許可: 受信者オブジェクトの所有者。
カタログ エクスプローラー
Azure Databricks ワークスペースで、
Catalog をクリックします。
[カタログ] ウィンドウの上部にある
をクリックします。歯車アイコンをクリックし、[OpenSharing] を選択します。
または、右上隅の [ 共有] > [OpenSharing] をクリックします。
[自分と共有] タブで、[受信者] をクリックし、受信者を選択します。
[受信者] タブで、受信者を見つけて選択します。
をクリックします。kebab メニューをクリックし、[削除] を選択します。
確認のダイアログで [削除] をクリックします。
SQL
ノートブックまたは Databricks SQL クエリ エディターで次のコマンドを実行します。
DROP RECIPIENT [IF EXISTS] <recipient-name>;
CLI
Databricks CLI を使用して次のコマンドを実行します。
databricks recipients delete <recipient-name>