Delta Sharing e ABAC
É possível compartilhar tabelas e visualizações protegidas por políticas ABAC por meio Delta Sharing , desde que o proprietário do compartilhamento esteja isento das políticas no lado do provedor. Esta página aborda como compartilhar tabelas com filtros de linha e máscaras de coluna, e como lidar com a visualização quando você precisa aplicar políticas no lado do destinatário.
Pré-requisitos
- Databricks Runtime 16.4 ou superior, ou compute serverless .
- Permissões de administrador da conta ou administrador workspace (para criar tags governadas).
MANAGEpermissão no catálogo ou esquema de destino.EXECUTEnas UDFs.- Delta Sharing configurado entre o provedor e o destinatário. Veja O que é Delta Sharing?
tabelas compartilhamento protegidas por políticas ABAC
Os proprietários de compartilhamentos podem compartilhar tabelas protegidas por políticas ABAC por meio Delta Sharing se atenderem a ambas as seguintes condições:
- Eles possuem as permissões Delta Sharing necessárias.
- Eles estão isentos das políticas ABAC (listadas na cláusula
EXCEPT).
O exemplo a seguir mostra uma política do lado do provedor em que o proprietário da ação está isento:
-- 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`;
A política ABAC do provedor não rege o acesso do destinatário. Como o proprietário do compartilhamento está isento da política do provedor, o destinatário vê os dados não filtrados ou não mascarados por default. Os destinatários podem aplicar suas próprias políticas ABAC às tabelas compartilhadas para impor o controle de acesso em seu próprio ambiente.
- Para provedores de compartilhamento, consulte Adicionar tabelas e esquemas protegidos por políticas ABAC a um compartilhamento.
- Para destinatários de compartilhamento, consulte Ler dados protegidos por ABAC e aplicar políticas ABAC.
visualização de compartilhamento protegida pelas políticas ABAC
Os proprietários de compartilhamentos também podem compartilhar visualizações que fazem referência a tabelas base protegidas por ABAC. Assim como no compartilhamento direto de tabelas, o proprietário do compartilhamento deve estar isento das políticas ABAC nas tabelas subjacentes.
-- 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`;
Se você tinha acesso ao compartilhamento antes de 23 de abril de 2026, talvez precise atualizar suas políticas ABAC. Antes dessa data, o proprietário daview precisava ser isento das políticas nas tabelas subjacentes. A partir de 23 de abril de 2026, o proprietário das ações deverá ser isento. Se a Databricks entrou em contato com você como um cliente potencialmente afetado, você tem até 22 de julho de 2026 para atualizar suas cláusulas EXCEPT .
Visão local do destinatário sobre tabelas compartilhadas
Como as políticas ABAC só podem ser definidas em tabelas, e não em visualizações, se você precisar que os usuários destinatários consumam dados por meio de visualizações e que dados confidenciais precisem ser protegidos, compartilhe as tabelas base e defina as políticas ABAC nelas. O destinatário cria uma visualização local sobre as tabelas compartilhadas, e as políticas nas tabelas base são respeitadas quando os dados são acessados por meio dessas visualizações. Neste caso, não é necessário compartilhar a visão do lado do provedor.
Essa abordagem funciona da seguinte maneira:
- Compartilhe apenas as tabelas base, não a visualização. Do lado do destinatário, as tabelas compartilhadas aparecem em um esquema de compartilhamento delta somente leitura.
- Aplique as políticas ABAC às tabelas de origem no lado do provedor e às tabelas compartilhadas no lado do destinatário. A política do provedor controla o acesso no lado do provedor. O destinatário cria uma política para controlar o acesso dos usuários em seu próprio sistema.
- Crie uma visualização no destinatário com base nas tabelas base compartilhadas em um esquema separado. Como os esquemas Delta Sharing são somente leitura, a visualização local do destinatário deve ser criada em um esquema diferente. Se você definir políticas ABAC nas tabelas Delta Sharing , essas políticas serão respeitadas quando os usuários acessarem os dados por meio da visualização local do destinatário.

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