Delta-Freigabe und ABAC

Sie können Tabellen und Ansichten, die durch ABAC-Richtlinien geschützt sind, über die Delta-Freigabe freigeben, wenn der Freigabebesitzer von den Richtlinien auf der Anbieterseite ausgenommen ist. Auf dieser Seite wird erläutert, wie Sie Tabellen mit Zeilenfiltern und Spaltenmasken freigeben und wie Ansichten behandelt werden, wenn Sie Richtlinien auf der Empfängerseite durchsetzen müssen.

Voraussetzungen

  • Databricks Runtime 16.4 oder höher oder serverloses Computing.
  • Kontoadministrator- oder Arbeitsbereichsadministratorberechtigungen (zum Erstellen von geregelten Tags).
  • MANAGE Berechtigung für den Zielkatalog oder das Zielschema.
  • EXECUTE auf den UDFs.
  • Delta Sharing wurde zwischen Anbieter und Empfänger konfiguriert. Weitere Informationen finden Sie unter Was ist Delta Sharing?.

Freigeben von Tabellen, die durch ABAC-Richtlinien geschützt sind

Anteilseigner können Tabellen, die durch ABAC-Richtlinien geschützt sind, über Delta Sharing freigeben, wenn sie beide Bedingungen erfüllen:

  1. Sie verfügen über die erforderlichen Delta-Freigabeberechtigungen.
  2. Sie sind von den ABAC-Richtlinien ausgenommen (in der EXCEPT Klausel aufgeführt).

Das folgende Beispiel zeigt eine anbieterseitige Richtlinie, bei der der Inhaber der Freigabe ausgenommen ist.

-- 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`;

Die ABAC-Richtlinie des Anbieters steuert nicht den Zugriff des Empfängers. Da der Anteilseigner von der anbieterseitigen Richtlinie ausgenommen ist, sieht der Empfänger standardmäßig ungefilterte oder unmaskierte Daten. Empfänger können ihre eigenen ABAC-Richtlinien auf geteilte Tabellen anwenden, um die Zugriffssteuerung auf ihrer Seite durchzusetzen.

Ansichten freigeben, die durch ABAC-Richtlinien geschützt sind

Freigabebesitzer können auch Ansichten freigeben, die auf ABAC-geschützte Basistabellen verweisen. Wie beim direkten Teilen von Tabellen muss der Teileigentümer von ABAC-Richtlinien für die zugrunde liegenden Tabellen ausgenommen sein.

-- 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`;

Note

Wenn Sie Ansichten vor dem 23. April 2026 freigegeben haben, müssen Sie möglicherweise Ihre ABAC-Richtlinien aktualisieren. Vor diesem Datum musste der Ansichtsbesitzer von Richtlinien für die zugrunde liegenden Tabellen ausgenommen werden. Ab dem 23. April 2026 muss der Aktienbesitzer stattdessen ausgenommen werden. Wenn Databricks Sie als potenziell betroffenen Kunden kontaktiert hat, müssen Sie bis zum 22. Juli 2026 Ihre EXCEPT Klauseln aktualisieren.

Empfängerbezogene Ansichten für freigegebene Tabellen

Da ABAC-Richtlinien nur für Tabellen und nicht für Ansichten festgelegt werden können, sollten Sie die Basistabellen freigeben und ABAC-Richtlinien dafür festlegen, wenn Empfängerbenutzer Daten über Ansichten abrufen müssen und sensible Daten geschützt werden müssen. Der Empfänger erstellt lokal Ansichten über die freigegebenen Tabellen, und die Richtlinien für die Basistabellen werden berücksichtigt, wenn über diese Ansichten auf Daten zugegriffen wird. In diesem Fall müssen Sie keine anbieterseitigen Ansichten freigeben.

Dieser Ansatz funktioniert wie folgt:

  1. Verwenden Sie nur die Basistabellen, nicht die Ansichten. Auf der Empfängerseite werden die freigegebenen Tabellen in einem schreibgeschützten Delta-Share-Schema angezeigt.
  2. Wenden Sie ABAC-Richtlinien auf die Quelltabellen auf der Anbieterseite und auf die freigegebenen Tabellen auf der Empfängerseite an. Die Richtlinie des Anbieters steuert den Zugriff auf der Anbieterseite. Der Empfänger erstellt eine Richtlinie zum Steuern des Zugriffs für Benutzer auf der Empfängerseite.
  3. Erstellen Sie Ansichten beim Empfänger auf den freigegebenen Basistabellen in einem separaten Schema. Da Delta-Freigabeschemas schreibgeschützt sind, müssen Empfänger-lokale Ansichten in einem anderen Schema erstellt werden. Wenn Sie ABAC-Richtlinien für die Delta-Freigabetabellen festlegen, werden diese Richtlinien beachtet, wenn Benutzer über die empfängerlokalen Ansichten auf die Daten zugreifen.

Lokale Ansichten des Delta-Freigabeempfängers

-- 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;