Delta Sharing の共有を管理する

このページでは、Azure Databricks における既存の Delta Sharing の共有を表示、更新、削除する方法について説明します。 共有は、テーブル、ビュー、ボリューム、ノートブック、AI モデル、および 1 つ以上の受信者と共有するためのその他のデータ資産をバンドルする、Unity カタログのセキュリティ保護可能なオブジェクトです。

新しい共有を作成したり、既存の共有にデータ資産を追加したりするには、「 差分共有の共有を作成する」を参照してください。 受信者に共有設定へのアクセス権を付与するには、「Delta Sharing の共有設定へのアクセスを管理する(プロバイダー向け)」を参照してください。 共有先のデータ受信者を管理するには、「Delta Sharing のデータ受信者を管理する」を参照してください。

共有モデルの詳細については、「 共有、プロバイダー、受信者」を参照してください。

Requirements

完了する各タスクの一覧の要件を満たしていることを確認します。

Task Requirements
共有への受信者のアクセス権を付与する
  • メタストア管理者になる。
  • 共有オブジェクトと受信者オブジェクトの両方で委任されたアクセス許可または所有権を持つユーザーであること。つまり、ユーザーは次の両方の要件を満たす必要があります。
    • USE SHARESET SHARE PERMISSIONの両方の特権を持っているか、共有所有者になる
    • USE RECIPIENT特権を持っているか、受信者の所有者になる
共有を表示する
  • メタストア管理者になる (すべてを表示できます)。 OR
  • USE SHARE権限を持つユーザーである (すべてを表示できます)。 OR
  • 共有オブジェクトの所有者であること。
共有権者の更新
  • メタストア管理者になる。
共有名の更新
  • CREATE SHARE特権を持っている。
  • 共有の所有者であること。
その他の共有プロパティを更新する
  • 共有の所有者であること。
共有を削除する
  • 共有オブジェクトの所有者であること。

共有と共有の詳細を表示する

共有やその詳細を表示する前に要件を満たしていることを確認します。

共有または共有に関する詳細の一覧を表示するには、Azure Databricks ノートブックまたは Databricks SQL クエリ エディターで、カタログ エクスプローラー、Databricks Unity カタログ CLI、または SQL コマンドを使用します。

共有の詳細には、次のものが含まれます。

  • 共有の所有者、作成者、作成タイムスタンプ、アップデーター、更新されたタイムスタンプ、コメント。
  • 共有内のデータ資産。
  • 共有にアクセスできる受信者。

カタログ エクスプローラー

  1. Azure Databricks ワークスペースで、Data icon.Catalog をクリックします。

  2. [カタログ] ペインの上部で 歯車アイコン。 歯車アイコンをクリックし、[Delta Sharing] を選択します。

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

  3. [共有] タブを開いて共有の一覧を表示します。

  4. [詳細] タブで共有の詳細を表示します。

SQL

共有の一覧を表示するには、ノートブックまたは Databricks SQL クエリ エディターで次のコマンドを実行します。 必要に応じて、<pattern>LIKE の述語 に置き換えます。

SHOW SHARES [LIKE <pattern>];

特定の共有の詳細を表示するには、次のコマンドを実行します。

DESCRIBE SHARE <share-name>;

共有内のすべてのテーブル、ビュー、ボリュームの詳細を表示するには、次のコマンドを実行します。

SHOW ALL IN SHARE <share-name>;

CLI

共有の一覧を表示するには、Databricks CLI を使用して次のコマンドを実行します。

databricks shares list

特定の共有の詳細を表示するには、次のコマンドを実行します。

databricks shares get <share-name>

共有に対するアクセス許可を持つ受信者を表示する

受信者を表示する前に 、要件 を満たしていることを確認します。

受信者にアクセス権が付与されている共有の一覧を表示するには、Azure Databricks ノートブックまたは Databricks SQL クエリ エディターで、カタログ エクスプローラー、Databricks Unity カタログ CLI、または SHOW GRANTS TO RECIPIENT SQL コマンドを使用します。

カタログ エクスプローラー

  1. Azure Databricks ワークスペースで、Data icon.Catalog をクリックします。

  2. [カタログ] ペインの上部で 歯車アイコン。 歯車アイコンをクリックし、[Delta Sharing] を選択します。

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

  3. [自分と共有] タブで、受信者を見つけて選択します。

  4. [受信者] タブに移動して、共有にアクセスできる受信者の一覧を表示します。

SQL

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

SHOW GRANTS ON SHARE <share-name>;

CLI

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

databricks shares share-permissions <share-name>

共有を更新する

共有を更新する前に 、要件 を満たしていることを確認します。

共有は、次の方法で更新できます。

  • 共有の名前を変更します。
  • 共有からテーブル、ビュー、ボリューム、スキーマを削除します。
  • 共有に対してコメントを追加または更新します。
  • テーブルのエイリアス (受信者に表示されるテーブル名) の名前を変更します。
  • テーブルの履歴データへのアクセスを有効または無効にして、受信者がタイム トラベル クエリまたはテーブルのストリーミング読み取りを実行できるようにします。
  • パーティションの定義を追加、更新、削除します。
  • 共有の所有者を変更します。

共有に対してこれらの更新を行うには、Azure Databricks ノートブックまたは Databricks SQL クエリ エディターで、カタログ エクスプローラー、Databricks Unity カタログ CLI、または SQL コマンドを使用します。 ただし、カタログ エクスプローラーを使用して共有の名前を変更することはできません。

カタログ エクスプローラー

  1. Azure Databricks ワークスペースで、Data icon.Catalog をクリックします。

  2. [カタログ] ペインの上部で 歯車アイコン。 歯車アイコンをクリックし、[Delta Sharing] を選択します。

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

  3. [自分と共有] タブで、更新する共有を見つけ、その名前をクリックします。

共有の詳細のページで、次の操作を行います。

  • [所有者] フィールドまたは [コメント] フィールドの横にある [編集] アイコン 編集アイコンをクリックして、これらの値を更新します。
  • アセット行のケバブ メニュー ケバブ メニュー アイコン ボタンをクリックして削除します。
  • [資産の管理] > [資産の編集] をクリックして、その他すべてのプロパティを更新します。
    • 資産を削除するには、対象資産の横にあるチェックボックスをオフにします。
    • パーティション定義を追加、更新、または削除するには、[詳細オプション] をクリックします。

SQL

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

共有の名前を変更します。

ALTER SHARE <share-name> RENAME TO <new-share-name>;

共有からテーブルを削除します。

ALTER SHARE share_name REMOVE TABLE <table-name>;

共有からボリュームを削除します。

ALTER SHARE share_name REMOVE VOLUME <volume-name>;

共有に対してコメントを追加または更新します。

COMMENT ON SHARE <share-name> IS '<comment>';

共有内のテーブルのパーティションを追加または変更します。

ALTER SHARE <share-name> ADD TABLE <table-name> PARTITION(<clause>);

共有の所有者を変更します。

ALTER SHARE <share-name> OWNER TO  '<principal>'

-- Principal must be an account-level user email address or group name.

テーブルの履歴共有を有効にします。

ALTER SHARE <share-name> ADD TABLE <table-name> WITH HISTORY;

ALTER SHARE パラメーターの詳細については、ALTER SHAREを参照してください。

CLI

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

共有の名前を変更します。

databricks shares update <share-name> --name <new-share-name>

共有からテーブルを削除します。

databricks shares update <share-name> \
  --json '{
    "updates": [
      {
        "action": "REMOVE",
        "data_object": {
          "name": "<table-full-name>",
          "data_object_type": "TABLE",
          "shared_as": "<table-alias>"
        }
      }
    ]
  }'

(Databricks CLI 0.210 以降を使用して) 共有からボリュームを削除します。

databricks shares update <share-name> \
  --json '{
    "updates": [
      {
        "action": "REMOVE",
        "data_object": {
          "name": "<volume-full-name>",
          "data_object_type": "VOLUME",
          "string_shared_as": "<volume-alias>"
        }
      }
    ]
  }'

Note

ボリュームにエイリアスがない場合は、name プロパティを使用します。 エイリアスがある場合は、string_shared_as を使用します。

共有に対してコメントを追加または更新します。

databricks shares update <share-name> --comment '<comment>'

共有の所有者を変更します。

databricks  shares update <share-name> --owner '<principal>'

プリンシパルは、アカウント レベルのユーザー メール アドレスまたはグループ名である必要があります。

共有所有者を更新するときの考慮事項

共有所有者が誰であるかは、ABAC ポリシーなどの承認とセキュリティ機能の評価方法に影響します。 ABAC ポリシーによってセキュリティ保護されたテーブルまたはスキーマがある場合、共有の所有権を特権を超えるユーザーに譲渡すると、受信者は特権を超えるアクセス権を持つことができます。

共有を削除する

共有を削除すると、受信者は共有データにアクセスできなくなります。 共有オブジェクトを削除する前に 、要件 を満たしていることを確認します。

共有を削除するには、Azure Databricks ノートブックまたは Databricks SQL クエリ エディターで、カタログ エクスプローラー、Databricks Unity カタログ CLI、または DELETE SHARE SQL コマンドを使用します。 自分が共有の所有者である必要があります。

カタログ エクスプローラー

  1. Azure Databricks ワークスペースで、Data icon.Catalog をクリックします。

  2. [カタログ] ペインの上部で 歯車アイコン。 歯車アイコンをクリックし、[Delta Sharing] を選択します。

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

  3. [自分と共有] タブで、削除する共有を見つけ、その名前をクリックします。

  4. Kebab メニュー アイコン をクリックします。kebab メニューをクリックし、[削除] を選択します

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

SQL

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

DROP SHARE [IF EXISTS] <share-name>;

CLI

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

databricks shares delete <share-name>