공유 소유자가 공급자 쪽 정책에서 제외된 경우 델타 공유를 통해 ABAC 정책으로 보호되는 테이블 및 뷰를 공유할 수 있습니다. 이 페이지에서는 행 필터 및 열 마스크와 테이블을 공유하는 방법과 받는 사람 쪽에서 정책을 적용해야 할 때 보기를 처리하는 방법을 설명합니다.
사전 요구 사항
- Databricks Runtime 16.4 이상 또는 서버리스 컴퓨팅
- 계정 관리자 또는 작업 영역 관리자 권한(관리 태그 만들기)
-
MANAGE대상 카탈로그 또는 스키마에 대한 사용 권한입니다. -
EXECUTEUDF에 대해 - 공급자와 받는 사람 간에 구성된 델타 공유입니다. Delta Sharing이란?을 참조하세요.
ABAC 정책으로 보호되는 테이블 공유
공유 소유자는 다음 두 조건을 모두 충족하는 경우 델타 공유를 통해 ABAC 정책으로 보호되는 테이블을 공유할 수 있습니다.
- 필요한 델타 공유 권한이 있습니다.
- 그들은
EXCEPT절에 나열된 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 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가 잠재적으로 영향을 받을 수 있는 고객으로 연락한 경우, 2026년 7월 22일까지 EXCEPT 절항을 업데이트해야 합니다.
공유 테이블에 대한 수신자-로컬 보기
ABAC 정책은 뷰가 아닌 테이블에만 설정할 수 있으므로 뷰를 통해 데이터를 사용하는 받는 사람 쪽 사용자가 필요하고 중요한 데이터를 보호해야 하는 경우 기본 테이블을 공유하고 ABAC 정책을 설정합니다. 받는 사람은 공유 테이블을 통해 로컬로 보기를 만들고, 해당 뷰를 통해 데이터에 액세스할 때 기본 테이블의 정책이 적용됩니다. 이 경우 공급자 쪽 보기를 공유할 필요가 없습니다.
이 방법은 다음과 같이 작동합니다.
- 뷰가 아닌 기본 테이블만 공유합니다. 받는 사람 쪽에서 공유 테이블은 읽기 전용 델타 공유 스키마에 표시됩니다.
- 공급자 쪽의 원본 테이블과 받는 사람 쪽의 공유 테이블에 ABAC 정책을 적용합니다. 공급자의 정책은 공급자 쪽에서 액세스를 제어합니다. 받는 사람은 받는 사람 쪽의 사용자에 대한 액세스를 제어하는 정책을 만듭니다.
- 별도의 스키마에서 공유 기본 테이블 위에 있는 받는 사람에서 보기를 만듭니다. 델타 공유 스키마는 읽기 전용이므로 다른 스키마에서 받는 사람-로컬 뷰를 만들어야 합니다. 델타 공유 테이블에서 ABAC 정책을 설정하는 경우 사용자가 받는 사람-로컬 보기를 통해 데이터에 액세스할 때 이러한 정책이 적용됩니다.
-- 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;