Delta Sharing のデータ受信者の作成と管理

この記事では、Delta Sharing の受信者を作成および管理する方法について説明します。

受信者は、共有データを使用する現実世界のユーザーまたはユーザー グループの ID を表す名前付きオブジェクトです。 受信者を作成する方法は、受信者がUnity Catalogが有効になっている Databricks ワークスペースにアクセスできるかどうかによって異なります。

  • Unity Catalogが有効になっている Databricks ワークスペースにアクセスできる受信者の場合、Databricks によって完全に管理されるセキュリティで保護された接続を使用して受信者オブジェクトを作成できます。この共有モードは 、Databricks間共有と呼ばれます。

  • Unity Catalog が有効になっている Databricks ワークスペースにアクセスできない受信者の場合は、トークンベースの認証を使用して管理する安全な接続でオープン共有を使用する必要があります。

これら 2 つの共有モードの詳細と、どちらを選択するかについては、 「オープン共有とDatabricks-to-Databricks共有」を参照してください。

要件

受信者を作成するには:

  • 共有するデータが登録されている Unity Catalog メタストアに対して、メタストア管理者であるか、 CREATE_RECIPIENT権限を持っている必要があります。

  • Unity Catalog メタストアがアタッチされた Databricks ワークスペースを使用して受信者を作成する必要があります。

  • Databricks ノートブックを使用して受信者を作成する場合、クラスターは Databricks Runtime 11.3 LTS 以降を使用し、共有クラスター アクセス モードまたはシングル ユーザー クラスター アクセス モードを使用する必要があります。

その他の受信者管理操作 (共有への表示、削除、更新、受信者アクセス権の付与など) については、この記事の操作固有のセクションに記載されているアクセス許可要件を参照してください。

Databricks にアクセスできるユーザーの受信者オブジェクトを作成する (Databricks間共有)

データ受信者がUnity Catalog に対して有効になっているDatabricks ワークスペースにアクセスできる場合は、認証タイプがDATABRICKSの受信者オブジェクトを作成できます。

認証タイプがDATABRICKSの受信者オブジェクトは、特定の Unity Catalog メタストアのデータ受信者を表します。受信者オブジェクト定義では、メタストアのクラウド、リージョン、UUID で構成される共有識別子文字列によって識別されます。 この受信者と共有されるデータには、そのメタストアでのみアクセスできます。

ステップ 1: 受信者の共有識別子を要求する

受信側ユーザーに、受信側ユーザーまたはユーザー グループが共有データを操作するワークスペースにアタッチされている Unity Catalog メタストアの共有 ID を送信するように依頼します。

共有識別子は、メタストアのクラウド、リージョン、UUID (メタストアの一意の識別子) で構成される文字列で、形式は<cloud>:<region>:<uuid>です。

たとえば、次のスクリーンショットでは、完全な共有識別子文字列はaws:us-west-2:19a84bee-54bc-43a2-87de-023d0ec16016です。

CURRENT_METASTOREの例

受信者は、カタログ エクスプローラー、Databricks Unity Catalog CLI、または Databricks ノートブックの既定の SQL CURRENT_METASTORE 関数、または使用する予定のワークスペース内の Unity Catalog対応クラスターで実行される Databricks SQL クエリーを使用して識別子を見つけることができます。

Catalog Explorer を使用して共有識別子を取得するには:

  1. Databricks ワークスペースで、カタログアイコンカタログをクリックします。

  2. カタログパネルの上部にある歯車アイコン歯車アイコンをクリックし、 Delta Sharingを選択します。

    または、クイック アクセスページでDelta Sharing >]ボタンをクリックします。

  3. [共有アイテム]タブで、右上にある Databricks 共有組織名をクリックし、 [共有識別子のコピー]を選択します。

ノートブックまたは Databricks SQL クエリ エディターで次のコマンドを実行します。

SELECT CURRENT_METASTORE();

Databricks CLIを使用して次のコマンドを実行します。 共有識別子は global_metastore_idとして返されます。

databricks metastores summary

このステップに含まれる情報を連絡先に送信するか、 Databricks間共有モデルで [アクセスを取得する] を指定することで、受信者を支援することができます。

ステップ 2: 受信者を作成する

Databricks-to-Databricks間で共有する受信者を作成するには、カタログ エクスプローラー、DatabricksUnity CatalogCLI 、またはCREATE RECIPIENTSQL DatabricksノートブックまたはDatabricks SQL クエリ エディターの コマンドを使用できます。

必要な権限: 共有するデータが登録されている Unity Catalog メタストアのメタストア管理者またはCREATE_RECIPIENT権限を持つユーザー。

  1. Databricks ワークスペースで、カタログアイコンカタログをクリックします。

  2. カタログパネルの上部にある歯車アイコン歯車アイコンをクリックし、 Delta Sharingを選択します。

    または、クイック アクセスページでDelta Sharing >]ボタンをクリックします。

  3. [共有元]タブで、 [新しい受信者]をクリックします。

  4. [受信者名] と [共有識別子] を入力します。

    共有識別子文字列全体を<cloud>:<region>:<uuid>形式で使用します。 たとえば、 aws:us-west-2:19a84bee-54bc-43a2-87de-023d0ec16016.

  5. (オプション)コメントを入力します。

  6. [作成]をクリックします。

  7. (オプション)カスタム 受信者プロパティを作成します。

    [ プロパティを編集] > [プロパティを追加] をクリックします。 次に、プロパティ名 (キー) と を追加します。 詳細については、「 受信者のプロパティの管理」を参照してください。

ノートブックまたは Databricks SQL クエリ エディターで次のコマンドを実行します。

CREATE RECIPIENT [IF NOT EXISTS] <recipient-name>
USING ID '<sharing-identifier>'
[COMMENT "<comment>"];

共有識別子文字列全体を<cloud>:<region>:<uuid>形式で使用します。 たとえば、 aws:eu-west-1:g0c979c8-3e68-4cdf-94af-d05c120ed1ef.

受信者のカスタムプロパティを追加することもできます。 詳細については、「 受信者のプロパティの管理」を参照してください。

Databricks CLIを使用して次のコマンドを実行します。 プレースホルダーの値を置き換えます。

  • <recipient-name>: 受信者の名前。

  • <sharing-identifier>: <cloud>:<region>:<uuid>形式の共有識別子文字列全体。 たとえば、 aws:eu-west-1:g0c979c8-3e68-4cdf-94af-d05c120ed1ef.

  • <authentication-type>: <sharing-identifier><cloud>:<region>:<uuid>形式の共有識別子文字列が指定されている場合は、 DATABRICKSに設定されます。

databricks recipients create <recipient-name> <authentication-type> --sharing-code <sharing-identifier>

受信者のカスタムプロパティを追加することもできます。 詳細については、「 受信者のプロパティの管理」を参照してください。

受信者は DATABRICKSauthentication_typeで作成されます。

他のすべてのユーザーの受信者オブジェクトを作成する (オープン共有)

Databricks ワークスペース外部のユーザーとデータを共有する場合、そのユーザーが Databricks を使用しているかどうかに関係なく、オープン Delta Sharing を使用してデータを安全に共有できます。 その仕組みは次のとおりです。

  1. データ プロバイダーとして、Unity Catalog メタストアに受信者オブジェクトを作成します。

  2. 受信者オブジェクトを作成すると、Databricks によってトークン、トークンを含む資格情報ファイル、および受信者と共有するためのアクティベーションリンクが生成されます。 受信者オブジェクトの認証の種類は TOKENです。

  3. 受信者は、アクティベーションリンクにアクセスし、資格情報ファイルをダウンロードし、資格情報ファイルを使用して、アクセス権を付与した共有に含めるテーブルを認証し、読み取りアクセスを取得します。

ステップ 1: 受信者を作成する

オープン共有の受信者を作成するには、カタログ エクスプローラー、Databricks Unity Catalog CLI、または Databricks ノートブックまたは Databricks SQL クエリ エディターのCREATE RECIPIENT SQL コマンドを使用できます。

必要な権限: 共有するデータが登録されている Unity Catalog メタストアのメタストア管理者またはCREATE_RECIPIENT権限を持つユーザー。

  1. Databricks ワークスペースで、カタログアイコンカタログをクリックします。

  2. カタログパネルの上部にある歯車アイコン歯車アイコンをクリックし、 Delta Sharingを選択します。

    または、クイック アクセスページでDelta Sharing >]ボタンをクリックします。

  3. [共有元]タブで、 [新しい受信者]をクリックします。

  4. 受信者 の名前を入力します

  5. (オプション)コメントを入力します。

  6. [作成]をクリックします。

    共有識別子は、オープン共有の受信者には使用しません。

  7. アクティベーションリンクをコピーします。

    または、後でアクティベーションリンクを取得することもできます。 「ステップ 2: アクティベーション リンクを取得する」を参照してください。

  8. (オプション)カスタム 受信者プロパティを作成します。

    受信者の詳細タブで、プロパティの編集 > + プロパティの追加 をクリックします。 次に、プロパティ名 (キー) と を追加します。 詳細については、「 受信者のプロパティの管理」を参照してください。

ノートブックまたは Databricks SQL クエリ エディターで次のコマンドを実行します。

CREATE RECIPIENT [IF NOT EXISTS] <recipient-name>
[COMMENT "<comment>"];

受信者のカスタムプロパティを追加することもできます。 詳細については、「 受信者のプロパティの管理」を参照してください。

Databricks CLIを使用して次のコマンドを実行します。

databricks recipients create <recipient-name>

受信者のカスタムプロパティを追加することもできます。 詳細については、「 受信者のプロパティの管理」を参照してください。

出力には、受信者と共有した activation_url が含まれます。

受信者は TOKENauthentication_typeで作成されます。

注:

受信者を作成するときに、受信者のアクセスを制限された IP アドレスのセットに制限するオプションがあります。 また、既存の受信者に IP アクセスリストを追加することもできます。 「IP アクセス リストを使用してDelta Sharing受信者のアクセスを制限する (オープン共有)」を参照してください。

受信者に共有へのアクセス権を付与する

受信者を作成し、 共有を作成したら、その共有へのアクセス権を受信者に付与できます。

受信者に共有アクセスを許可するには、カタログ エクスプローラー、Databricks Unity Catalog CLI、または Databricks ノートブックまたは Databricks SQL クエリ エディターのGRANT ON SHARE SQL コマンドを使用できます。

必要な権限: 次のいずれかです。

  • メタストア管理者。

  • 共有オブジェクトと受信者オブジェクト ((USE SHARE + SET SHARE PERMISSION) または共有の所有者) および (USE RECIPIENT または受信者の所有者) の両方に対する委任されたアクセス許可または所有権。

手順については、 「Delta Sharing データ共有へのアクセスの管理 (プロバイダー向け)」を参照してください。

受信者に接続情報を送信する

共有しているデータへのアクセス方法を受信者に知らせる必要があります。 受信者と共有する情報はDatabricks-to-Databricks共有を使用しているか、オープン共有を使用しているかによって異なります。

  • Databricks-to-Databricks共有の場合は、共有するデータにアクセスするための手順へのリンクを送信します。

    使用可能な共有を一覧表示するプロバイダー オブジェクトは、受信者のメタストアに自動的に作成されます。 受信者は、使用する共有を表示して選択する以外、何もする必要はありません。 Databricks-to-Databricks Delta Sharingを使用して共有されたデータを読み取る (受信者向け)」を参照してください。

  • オープン共有の場合は、セキュリティで保護されたチャンネルを使用して、 アクティベーションリンク とその 使用手順へのリンクを共有します。

    資格情報ファイルは一度だけダウンロードできます。 受信者は、ダウンロードした資格情報をシークレットとして扱い、組織外で共有してはなりません。 資格情報が安全でない方法で処理された可能性があるという懸念がある場合は、 受信者の資格情報 をいつでもローテーションできます。 受信者の安全なアクセスを確保するための資格情報の管理の詳細については、 「トークンのセキュリティに関する考慮事項」を参照してください。

受信者の表示

受信者の一覧を表示するには、カタログ エクスプローラー、Databricks Unity Catalog CLI、または Databricks ノートブックまたは Databricks SQL クエリ エディターのSHOW RECIPIENTS SQL コマンドを使用できます。

必要なアクセス許可: メタストア管理者であるか、メタストア内のすべての受信者を表示するための USE RECIPIENT 特権を持っている必要があります。 他のユーザーは、自分が所有する受信者にのみアクセスできます。

  1. Databricks ワークスペースで、カタログアイコンカタログをクリックします。

  2. カタログパネルの上部にある歯車アイコン歯車アイコンをクリックし、 Delta Sharingを選択します。

    または、クイック アクセスページでDelta Sharing >]ボタンをクリックします。

  3. [共有元]タブで、 [受信者]をクリックします。

ノートブックまたは 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 権限を持つユーザー、または受信者オブジェクトの所有者。

詳細は次のとおりです。

  • 受信者の作成者、作成タイムスタンプ、コメント、および認証タイプ(TOKEN または DATABRICKS)。

  • 受信者がオープン共有を使用している場合: トークンの有効期間、アクティベーション リンク、アクティベーション ステータス (資格情報がダウンロードされているかどうか)、および IP アクセス リスト (割り当てられている場合)。

  • 受信者が Databricks 間の共有を使用している場合: 受信者の Unity Catalog メタストアのクラウド、リージョン、メタストア ID、およびアクティベーションの状態。

  • 受信者のプロパティ (カスタム プロパティを含む)。 「受信者のプロパティの管理」を参照してください。

  1. Databricks ワークスペースで、カタログアイコンカタログをクリックします。

  2. カタログパネルの上部にある歯車アイコン歯車アイコンをクリックし、 Delta Sharingを選択します。

    または、クイック アクセスページでDelta Sharing >]ボタンをクリックします。

  3. [共有元]タブで、 [受信者]をクリックし、受信者を選択します。

ノートブックまたは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 権限を持つユーザー、または受信者オブジェクトの所有者。

  1. Databricks ワークスペースで、カタログアイコンカタログをクリックします。

  2. カタログパネルの上部にある歯車アイコン歯車アイコンをクリックし、 Delta Sharingを選択します。

    または、クイック アクセスページでDelta Sharing >]ボタンをクリックします。

  3. [共有元]タブで、 [受信者]をクリックし、受信者を選択します。

  4. 受信者と共有されている共有のリストを表示するには、 「共有」タブに移動します。

ノートブックまたは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 権限を持つユーザー) であり 、所有者である必要があります。 コメントまたはカスタムプロパティを更新するには、所有者である必要があります。

  1. Databricks ワークスペースで、カタログアイコンカタログをクリックします。

  2. カタログパネルの上部にある歯車アイコン歯車アイコンをクリックし、 Delta Sharingを選択します。

    または、クイック アクセスページでDelta Sharing >]ボタンをクリックします。

  3. [共有元]タブで、 [受信者]をクリックし、受信者を選択します。

  4. 受信者の詳細ページで、次の操作を行います。

    • 所有者を更新します。

    • コメントを編集または追加します。

    • 受信者の名前を変更します。

      ケバブメニューケバブメニューをクリックし、[名前の変更]を選択します。

    • カスタム 受信者プロパティを編集、削除、または追加します。

      [プロパティの編集] をクリックします。プロパティを追加するには、[ + プロパティを追加 ] をクリックし、プロパティ名 (キー) と [値] を入力します。 詳細については、「 受信者のプロパティの管理」を参照してください。

ノートブックまたは 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

プロパティの詳細については、 「受信者のプロパティの管理」を参照してください。

受信者トークンの管理(オープン共有)

オープン共有を使用して受信者とデータを共有する場合は、その受信者のトークンをローテーションする必要がある場合があります。 トークンのローテーションは、既存のトークンの有効期限を設定し、新しいトークンとアクティベーション URL に置き換えることで構成されます。

次の状況では、受信者のトークンをローテーションし、新しいアクティベーション URL を生成する必要があります。

  • 既存の受信者トークンの有効期限が切れそうになったとき。

  • 受信者がアクティベーションURLを紛失した場合、または侵害された場合。

  • 受信者が資格情報をダウンロードした後で、資格情報が破損、紛失、または侵害された場合。

  • メタストアの受信者トークンの有効期間を変更する場合。 「受信者トークンの有効期間を変更する」を参照してください。

トークンのセキュリティに関する考慮事項

いつでも、受信者はアクティブなウイルスとローテーションされたウイルスの 2 つのウイルスを持つことができます。 ローテーションされたトークンは、有効期限が切れてアクティブなトークンに置き換えられるように設定されているトークンです。 ローテーションされたトークンの有効期限が切れるまで、トークンを再度ローテーションしようとするとエラーが発生します。

受信者のトークンをローテーションする場合、オプションで、既存の受信者トークン (つまり、ローテーションされるトークン) の有効期限が切れるまでの秒数を--existing-token-expire-in-secondsに設定できます。 値を0に設定すると、既存の受信者トークンは直ちに期限切れになります。

Databricks では、受信者が 2 つのアクティブ トークンを保持する時間を最小限に抑えながら、受信者組織が新しいアクティベーション URL にアクセスする時間を確保できる比較的短い期間に--existing-token-expire-in-secondsを設定することをお勧めします。 既存の受信者トークンが侵害された疑いがある場合、Databricks では、直ちに強制的に期限切れにすることをお勧めします。

受信者の既存のアクティベーション URL に一度もアクセスしたことがない場合は、既存のトークンをローテーションすると、そのアクティベーション URL が無効になり、新しい URL に置き換えられます。

すべての受信者の有効期限が切れている場合は、宛先をローテーションすると、既存のアクティベーション URL が新しい URL に置き換えられます。 Databricks では、トークンの有効期限が切れた受信者をすぐにローテーションまたは削除することをお勧めします。

受信者のアクティベーション URL が誤って間違った人に送信された場合、または安全でないチャネル経由で送信された場合、 Databricks次のことをお勧めします。

  1. 共有への受信者のアクセスを取り消します

  2. 受信者を回転させ、 --existing-token-expire-in-seconds0に設定します。

  3. 新しいアクティベーション URL を、安全なチャンネルを通じて対象の受信者と共有します。

  4. アクティベーション URL にアクセスしたら、受信者に共有へのアクセス権を再度付与します。

緊急の状況では、受信者のトークンをローテーションする代わりに、 受信者を削除 して再作成できます。

受信者のトークンをローテーションする

受信者のトークンをローテーションするには、カタログ エクスプローラーまたは Databricks Unity Catalog CLI を使用できます。

必要な権限: 受信者オブジェクトの所有者。

  1. Databricks ワークスペースで、カタログアイコンカタログをクリックします。

  2. 左側のペインで、 「Delta Sharing」メニューを展開し、 「Shared by me」を選択します。

  3. カタログパネルの上部にある歯車アイコン歯車アイコンをクリックし、 Delta Sharingを選択します。

    または、クイック アクセスページでDelta Sharing >]ボタンをクリックします。

  4. [共有元]タブで、 [受信者]をクリックし、受信者を選択します。

  5. [詳細]タブの[トークンの有効期限] で、 [ローテーション] をクリックします。

  6. 「トークンのローテーション」ダイアログで、トークンの有効期限をすぐに設定するか、一定期間有効にするかを設定します。 既存のトークンの有効期限に関するアドバイスについては、 「トークンのセキュリティに関する考慮事項」を参照してください。

  7. 「回転」をクリックします。

  8. [ 詳細 ] タブで、新しい [アクティベーション] リンクをコピーし、セキュリティで保護されたチャネルを介して受信者と共有します。 「ステップ 2: アクティベーション リンクを取得する」を参照してください。

  1. Databricks CLIを使用して次のコマンドを実行します。 プレースホルダーの値を置き換えます。

    • <recipient-name>: 受信者の名前。

    • <expiration-seconds>: 既存の受信者トークンの有効期限が切れるまでの秒数。 この期間中、既存のトークンは引き続き機能します。 値が0の場合、既存のトークンは直ちに期限切れになります。 既存のトークンの有効期限に関するアドバイスについては、 「トークンのセキュリティに関する考慮事項」を参照してください。

    databricks recipients rotate-token \
    <recipient-name> \
    <expiration-seconds>
    
  2. 受信者の新しいアクティベーションリンクを取得し、安全なチャンネルを介して受信者と共有します。 「ステップ 2: アクティベーション リンクを取得する」を参照してください。

受信者トークンの有効期間を変更する

Unity Catalog メタストアのデフォルトの受信者トークンの有効期間を変更する必要がある場合は、カタログ エクスプローラーまたは Databricks Unity Catalog CLI を使用できます。

注:

メタストアのデフォルトの受信者トークンの有効期間を変更しても、既存の受信者の受信者トークンの有効期間は自動的に更新されません。 特定の受信者に新しいトークンの有効期間を適用するには、その受信者のトークンをローテーションする必要があります。 「受信者トークンの管理(オープン共有)」を参照してください。

必要な権限: アカウント管理者。

  1. アカウントコンソールにログインします。

  2. サイドバーで、「カタログアイコン カタログ 」をクリックします。

  3. メタストア名をクリックします。

  4. Delta Sharing 受信者トークンの有効期間の下で、編集をクリックします。

  5. 有効期限 の設定を有効にします。

  6. 秒数、分数、時間数、または日数を入力し、測定単位を選択します。

  7. [保存]をクリックします。

「有効期限の設定」を無効にすると、受信者トークンは期限切れになりません。 Databricks では、トークンの有効期限を設定することをお勧めします。

Databricks CLIを使用して次のコマンドを実行します。 12a345b6-7890-1cd2-3456-e789f0a12b34をメタストア UUID に置き換え、 86400を受信者トークンの有効期限が切れるまでの秒数に置き換えます。 この値を0に設定すると、受信者トークンは期限切れになりません。 Databricks では、トークンの有効期限を設定することをお勧めします。

databricks metastores update \
12a345b6-7890-1cd2-3456-e789f0a12b34 \
--delta-sharing-recipient-token-lifetime-in-seconds 86400

(オプション)アクセス リストを使用して受信者のアクセスを制限する

受信者オブジェクトを設定するときに、受信者のアクセスを制限した 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 以降でサポートされています。

受信者を作成または更新するときにプロパティを追加する

受信者を作成するとき、または既存の受信者に対してプロパティを更新するときに、プロパティを追加できます。 カタログ エクスプローラー、Databricks Unity Catalog CLI、または Databricks ノートブックまたは Databricks SQL クエリ エディターの SQL コマンドを使用できます。

必要な権限: メタストア管理者またはUnity Catalogメタストアの CREATE RECIPIENT 権限を持つユーザー。

カタログエクスプローラーを使用して 受信者を作成 または更新する場合は、以下の手順に従ってカスタムプロパティを追加または 更新 します。

  1. [受信者の詳細] ページに移動します。

    新しい受信者を作成する場合は、「 作成」をクリックすると、このページが表示されます。 既存の受信者を更新する場合は、歯車アイコン歯車アイコン > Delta Sharing > Shared by me > 受信者 の順に進み、受信者を選択します。

  2. [ プロパティを編集] > [プロパティを追加] をクリックします。

  3. プロパティ名 (キー) と を入力します。

    たとえば、共有データを国別にフィルタリングし、この受信者と米国のデータのみを共有する場合は、「country」という名前のキーを作成し、値を「US」にすることができます。

  4. [保存]をクリックします。

受信者を作成するときにカスタム プロパティを追加するには、ノートブックまたは 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 コマンドを使用できます。 受信者を削除するには、受信者オブジェクトの所有者である必要があります。

受信者を削除すると、受信者が代表するユーザーは共有データにアクセスできなくなります。 受信者がオープン共有シナリオで使用するトークンは無効になります。

必要な権限: 受信者オブジェクトの所有者。

  1. Databricks ワークスペースで、カタログアイコンカタログをクリックします。

  2. カタログパネルの上部にある歯車アイコン歯車アイコンをクリックし、 Delta Sharingを選択します。

    または、クイック アクセスページでDelta Sharing >]ボタンをクリックします。

  3. [共有元]タブで、 [受信者]をクリックし、受信者を選択します。

  4. [受信者]タブで、受信者を見つけて選択します。

  5. ケバブメニューケバブメニューをクリックし、[削除]を選択します。

  6. 確認ダイアログで、[ 削除] をクリックします。

ノートブックまたはDatabricks SQLクエリーエディタで次のコマンドを実行します。

DROP RECIPIENT [IF EXISTS] <recipient-name>;

Databricks CLIを使用して次のコマンドを実行します。

databricks recipients delete <recipient-name>