Delta SharingとABAC
ABACで保護されたテーブルとビューは、 共有所有者がプロバイダー側で免除されている場合、 Delta Sharingを通じて共有できます。 プロバイダー側で。 このページでは、行フィルターと列マスクを使用してテーブルを共有する方法、および受信側でポリシーを適用する必要がある場合にビューを処理する方法について説明します。
前提条件
- Databricks Runtime 16.4 以降、またはサーバレス コンピュート。
- アカウント管理者またはワークスペース管理者権限(管理タグを作成するため)。
MANAGE対象のカタログまたはスキーマに対する権限。EXECUTEUDFについて。- プロバイダーと受信者の間でDelta Sharingが設定されています。 Delta Sharingとは何かをご覧ください。
ABAC ポリシーによって保護されたテーブルの共有
株主は、ABACによって保護されたテーブルを共有できます。 以下の2つの条件を両方満たす場合、 Delta Sharingを通じて共有できます。
- 彼らは必要なDelta Sharing権限を持っています。
- これらはABACのポリシー(
EXCEPT条項に記載)の適用対象外です。
以下の例は、株式所有者が免除されるプロバイダー側のポリシーを示しています。
-- Provider: row filter policy with the share owner exempted
CREATE POLICY hide_eu_customers
ON CATALOG provider_catalog
ROW FILTER hide_eu
TO `account users`
EXCEPT 'share_owner_group'
FOR TABLES
MATCH COLUMNS has_tag('geo_region') AS region
USING COLUMNS (region);
-- Add the table to the share
CREATE SHARE employees_share;
ALTER SHARE employees_share ADD TABLE provider_catalog.hr.employees;
GRANT SELECT ON SHARE employees_share TO RECIPIENT `recipient_org`;
プロバイダーの ABAC ポリシーは、受信者のアクセスを管理しません。 株主はプロバイダー側のポリシーの適用対象外であるため、受信者はデフォルトでフィルタリングされていない、またはマスクされていないデータを見ることができます。受信者は、共有テーブルに独自のABACを適用して、自身側でアクセス制御を強制できます。
- 共有プロバイダーについては、 「ABAC ポリシーによって保護されたテーブルとスキーマを共有に追加する」を参照してください。
- 共有受信者については、 「ABAC で保護されたデータの読み取りと ABAC ポリシーの適用」を参照してください。
ABACのポリシーによって保護されている意見の共有
株主は、ABACで保護された基本テーブルを参照するビューを共有することもできます。テーブルを直接共有する場合と同様に、共有所有者はABACの適用除外を受けなければなりません。 基となるテーブルに対して。
-- Provider: row filter policy with the share owner exempted
CREATE POLICY hide_eu_customers
ON CATALOG provider_catalog
ROW FILTER hide_eu
TO `account users`
EXCEPT 'share_owner_group'
FOR TABLES
MATCH COLUMNS has_tag('geo_region') AS region
USING COLUMNS (region);
-- Add the view to the share
ALTER SHARE employees_share ADD VIEW provider_catalog.hr.employees_view AS hr.employees_view;
GRANT SELECT ON SHARE employees_share TO RECIPIENT `recipient_org`;
2026年4月23日より前に意見を共有していた場合は、ABACを更新する必要があるかもしれません。 。 この日付より前は、 ビューの所有者は 基となるテーブルに関するポリシーの適用除外を受ける必要がありました。2026年4月23日以降は、 株主が 免除対象とならなければならない。Databricksから影響を受ける可能性のある顧客として連絡を受けた場合、 EXCEPT条項を更新するための期限は2026年7月22日です。
共有テーブルに対する受信者ローカルビュー
ABAC はテーブルにのみ設定でき、ビューには設定できないため、受信側のユーザーがビューを介してデータを利用する必要があり、機密データを保護する必要がある場合は、ベーステーブルを共有し、それらに ABAC を設定してください。 。 受信者は共有テーブル上にローカルでビューを作成し、それらのビューを介してデータにアクセスする際には、ベーステーブルのポリシーが適用されます。この場合、プロバイダー側のビューを共有する必要はありません。
このアプローチは次のように機能します。
- ビューではなく、基本テーブルのみを共有してください。 受信側では、共有テーブルは読み取り専用のデルタ共有スキーマで表示されます。
- ABAC ポリシーをプロバイダー側のソース テーブルと受信者側の共有テーブルに適用します。 プロバイダー側のポリシーによってアクセスが制御されます。受信者は、受信者側のユーザーのアクセスを制御するためのポリシーを作成します。
- 受信者側で、共有ベーステーブルの上に別のスキーマでビューを作成します。 Delta Sharingスキーマは読み取り専用であるため、受信者ローカルビューは別のスキーマで作成する必要があります。ABAC を設定するとDelta Sharingテーブルで、これらの は、ユーザーが受信者ローカル ビューを介してデータにアクセスする際に尊重されます。

-- Recipient: apply an ABAC policy to the shared table
CREATE POLICY hide_eu_customers
ON CATALOG recipient_catalog
ROW FILTER hide_eu
TO `account users`
EXCEPT 'recipient_admins'
FOR TABLES
MATCH COLUMNS has_tag('geo_region') AS region
USING COLUMNS (region);
-- Create a view in a separate schema (delta share schema is read-only)
CREATE VIEW recipient_catalog.analytics.employees_view AS
SELECT * FROM recipient_catalog.delta_share_schema.employees;