Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Important
Altyapılar arası ABAC Beta sürümündedir.
Harici işleme altyapıları, öznitelik tabanlı erişim denetimi (ABAC) ilkelerinin uygulandığı Unity Catalog tablolarını okuyabilir. Bu, Azure Databricks dışından sorgu yaparken bile dinamik olarak zorlanan ABAC satır filtreleri ve sütun maskeleri uygulamanıza olanak tanır.
Dış altyapı, ABAC ilkeleri eklenmiş bir tabloyu sorguladığında, Azure Databricks dış altyapıya temizlenmiş verileri filtrelemek ve döndürmek için özel bir sunucusuz işlem katmanı kullanır.
Requirements
Dış altyapılardan sorgulanan tablolarda ayrıntılı erişim denetimlerini zorunlu kılmak için aşağıdakileri tamamlamanız gerekir:
- Unity Kataloğu meta veri deponuzda dış veri erişimini etkinleştirin.
- Sorgulayan asıl öğeye
EXTERNAL USE SCHEMAayrıcalığını verin. - Katalog işlemeleriyleyönetilen bir tablo kullanın.
- OAuth makineler arası (M2M) veya kişisel erişim belirteci (PAT) kullanarak kimlik doğrulaması yapın.
Katalog commit’leriyle yönetilen bir Delta tablosu oluşturun
Katalog işlemeleriyle yeni bir yönetilen Delta tablosu oluşturmak için (Databricks Runtime 16.4 ve üzeri gerekir):
CREATE TABLE <catalog>.<schema>.<table> (id INT, name STRING)
TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported') USING delta;
Mevcut yönetilen tabloyu yükseltmek için (Databricks Runtime 18.0 ve üzeri gerekir):
ALTER TABLE <catalog>.<schema>.<table>
SET TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported');
Tabloyu oluşturduktan sonra ABAC ilkeleri, satır filtreleri veya sütun maskeleri uygulayabilirsiniz.
Bkz. İlke oluşturma veya Satır filtrelerini ve sütun maskelerini el ile uygulama.
Apache Spark ile tabloları okuma (Delta)
Apache Spark'ı Delta-Spark 4.1 veya üzeri ve Unity Kataloğu Spark bağlayıcısı 0.4 veya üzeri ile yapılandırın.
"spark.sql.extensions": "io.delta.sql.DeltaSparkSessionExtension",
"spark.sql.catalog.spark_catalog": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>.uri": "<workspace-url>",
"spark.sql.catalog.<uc-catalog-name>.auth.type": "oauth",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.uri": "<oauth-token-endpoint>",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.clientId": "<oauth-client-id>",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.clientSecret": "<oauth-client-secret>",
"spark.sql.catalog.<uc-catalog-name>.ServerSidePlanning.enabled": "true",
"spark.sql.defaultCatalog": "<uc-catalog-name>",
"spark.jars.packages": "io.delta:delta-spark_4.0_2.13:4.1.0,io.delta:delta-iceberg_2.13:4.1.0,io.unitycatalog:unitycatalog-spark_2.13:0.4.0,org.apache.hadoop:hadoop-azure:3.4.2"
Note
ServerSidePlanning.enabled değerini, harici motorlardan ince ayrıntılı erişim denetimi uygulamasını etkinleştirmek için true olarak ayarlayın.
Aşağıdaki değişkenleri değiştirin:
-
<uc-catalog-name>: Unity Kataloğu'nda tablolarınızı içeren kataloğun adı. -
<workspace-url>: Çalışma alanı kimliği de dahil olmak üzere Azure Databricks çalışma alanı URL'si. -
<oauth-token-endpoint>: OAuth belirteci uç noktası URL'si. Bkz. OAuth ile Azure Databricks'e hizmet sorumlusu erişimini yetkilendirme. -
<oauth-client-id>: Kimlik doğrulama sorumlusu için OAuth istemci kimliği. -
<oauth-client-secret>: Kimlik doğrulayıcı için OAuth istemci gizli anahtarı.
Apache Spark (Iceberg) ile tabloları okuma
Apache Spark'ı Iceberg-Spark 1.11 veya üzeri ve Apache Spark 4.0 veya üzeri ile yapılandırın.
"spark.sql.extensions": "org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions",
"spark.sql.catalog.<uc-catalog-name>": "org.apache.iceberg.spark.SparkCatalog",
"spark.sql.catalog.<uc-catalog-name>.type": "rest",
"spark.sql.catalog.<uc-catalog-name>.uri": "<workspace-url>/api/2.1/unity-catalog/iceberg-rest/",
"spark.sql.catalog.<uc-catalog-name>.credential": "<oauth-client-id>:<oauth-client-secret>",
"spark.sql.catalog.<uc-catalog-name>.oauth2-server-uri": "<oauth-token-endpoint>",
"spark.sql.catalog.<uc-catalog-name>.warehouse": "<uc-catalog-name>",
"spark.sql.catalog.<uc-catalog-name>.cache-enabled": "false",
"spark.sql.defaultCatalog": "<uc-catalog-name>"
Aşağıdaki değişkenleri değiştirin:
-
<uc-catalog-name>: Unity Kataloğu'nda tablolarınızı içeren kataloğun adı. -
<workspace-url>: Çalışma alanı kimliği de dahil olmak üzere Azure Databricks çalışma alanı URL'si. -
<oauth-token-endpoint>: OAuth belirteci uç noktası URL'si. Bkz. OAuth ile Azure Databricks'e hizmet sorumlusu erişimini yetkilendirme. -
<oauth-client-id>: Kimlik doğrulama sorumlusu için OAuth istemci kimliği. -
<oauth-client-secret>: Kimlik doğrulayıcı için OAuth istemci gizli anahtarı.
Sorgu verileri
Apache Spark SQL veya DataFrame API'lerini kullanarak tabloyu sorgulayabilirsiniz. Azure Databricks arka planda ayrıntılı erişim ilkeleri uygular.
SELECT * FROM <uc-catalog-name>.<schema>.<table>;
Warning
Sorgu planlaması sırasında eşzamanlı yazma işlemleri, aynı tablonun kendi kendine birleştirme ve çoklu tarama sorgularında farklı tablo anlık görüntülerinden okunmasına neden olabilir ve bu da hatalı sonuçlara neden olabilir.
Sunucusuz işlem maliyetleri
Altyapılar arası ABAC, sunucu tarafı ayrıntılı erişim ilkelerini zorunlu kılmak için sunucusuz işlem kaynaklarını kullanır. Müşteriler bu kaynaklar için ücretlendirilir. Fiyatlandırma bilgileri için bkz. Beta ürün fiyatlandırması.
Faturalama sistemi tablosuna erişimi olan kullanıcılar, ne kadar ücretlendirildiklerini görmek için sorgulayabilir system.billing.usage . Örneğin, aşağıdaki sorgu işlem maliyetlerini kullanıcıya göre ayırır:
SELECT usage_date,
sku_name,
identity_metadata.run_as,
SUM(usage_quantity) AS `DBUs consumed by cross-engine ABAC`
FROM system.billing.usage
WHERE usage_date BETWEEN '2026-06-01' AND '2026-07-01'
AND billing_origin_product = 'EXTERNAL_COMPATIBILITY'
GROUP BY 1, 2, 3 ORDER BY 1;
Sınırlamalar
- Ayrıntılı erişim denetimleri (FGAC) uygulandığında, harici motorlardan yalnızca okuma işlemleri desteklenir. Yazmak için yazma sorumlusunu ABAC ilkesinden muaf tutmanız gerekir.
- Dinamik görünümler desteklenmez.
- Sütunları yansıtma
VARIANTdesteklenmez. - Sütunlarda
BINARYfiltreleme desteklenmez. - Dönüş türü özgün sütun türünden farklı olan sütun maskeleme işlevleri desteklenmez.
- Büyük toplamalarda performans düşüşü yaşanabilir.