Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Important
A többmotoros ABAC bétaverzióban érhető el.
A külső feldolgozómotorok a Unity Catalog tábláit finomszemcsés hozzáférés-szabályozás érvényesítése mellett olvashatják. Ide tartoznak az attribútumalapú hozzáférés-vezérlési (ABAC-) szabályzatok, valamint az önálló sorszűrők és oszlopmaszkok is, amelyek mind dinamikusan érvényesíthetők, még akkor is, ha Azure Databricks kívülről kérdeznek le.
Amikor egy külső motor ABAC-szabályzatokkal, sorszűrőkkel vagy oszlopmaszkokkal lekérdez egy táblát, Azure Databricks egy speciális kiszolgáló nélküli számítási réteggel szűri és adja vissza a megtisztított adatokat a külső motornak.
Requirements
A külső motorokból lekérdezett táblákhoz való részletes hozzáférés-szabályozás kikényszerítéséhez a következőket kell elvégeznie:
- Külső adathozzáférés engedélyezése a Unity Catalog-metaadattárban.
- Adja meg a lekérdezést végző rendszerbiztonsági alanynak a
EXTERNAL USE SCHEMAjogosultságot. - Használjon egy felügyelt táblátkatalógus véglegesítésekkel.
- Hitelesítés OAuth machine-to-machine (M2M) vagy személyes hozzáférési jogkivonat (PAT) használatával.
Felügyelt Delta-tábla létrehozása katalógus véglegesítésekkel
Új felügyelt Delta-tábla létrehozása katalógus-véglegesítésekkel (a Databricks Runtime 16.4-et vagy újabb verziót igényli):
CREATE TABLE <catalog>.<schema>.<table> (id INT, name STRING)
TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported') USING delta;
Meglévő felügyelt tábla frissítéséhez (a Databricks Runtime 18.0-s vagy újabb verziójára van szükség):
ALTER TABLE <catalog>.<schema>.<table>
SET TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported');
A tábla létrehozása után ABAC-szabályzatokat, sorszűrőket vagy oszlopmaszkokat alkalmazhat.
Lásd: Szabályzat létrehozása vagy Sorszűrők és oszlopmaszkok manuális alkalmazása.
Táblázatok olvasása az Apache Spark (Delta) használatával
Konfigurálja az Apache Sparkot a Delta-Spark 4.1-es vagy újabb verziójával, valamint a Unity Catalog Spark csatlakozó 0.4-es vagy újabb verziójával.
"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
Állítsa a(z) ServerSidePlanning.enabled értékét erre: true, hogy lehetővé tegye a finomszemcsés hozzáférés-vezérlés érvényesítését külső motorokból.
Cserélje le a következő változókat:
-
<uc-catalog-name>: Az Unity Catalog katalógusának neve, amely tartalmazza a táblákat. -
<workspace-url>: Az Azure Databricks-munkaterület URL-címe, beleértve a munkaterület azonosítóját. -
<oauth-token-endpoint>: OAuth token végpont URL-címe. Lásd: Szolgáltatás főfelhasználó hozzáférésének engedélyezése az Azure Databrickshez OAuth használatával. -
<oauth-client-id>: OAuth-ügyfélazonosító a hitelesítő entitás számára. -
<oauth-client-secret>: OAuth ügyféltitok a hitelesítő entitáshoz.
Táblázatok olvasása az Apache Spark (Iceberg) használatával
Konfigurálja az Apache Sparkot a Iceberg-Spark 1.11 vagy újabb és az Apache Spark 4.0-s vagy újabb verzióval.
"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>"
Cserélje le a következő változókat:
-
<uc-catalog-name>: Az Unity Catalog katalógusának neve, amely tartalmazza a táblákat. -
<workspace-url>: Az Azure Databricks-munkaterület URL-címe, beleértve a munkaterület azonosítóját. -
<oauth-token-endpoint>: OAuth token végpont URL-címe. Lásd: Szolgáltatás főfelhasználó hozzáférésének engedélyezése az Azure Databrickshez OAuth használatával. -
<oauth-client-id>: OAuth-ügyfélazonosító a hitelesítő entitás számára. -
<oauth-client-secret>: OAuth ügyféltitok a hitelesítő entitáshoz.
Adatok lekérdezése
A táblát Apache Spark SQL vagy DataFrame API-k használatával kérdezheti le. Azure Databricks részletes hozzáférési szabályzatokat kényszerít ki a színfalak mögött.
SELECT * FROM <uc-catalog-name>.<schema>.<table>;
Warning
Az egyidejű írás a lekérdezéstervezés során azt eredményezheti, hogy ugyanazt a táblát különböző táblázat-pillanatképek olvassák be az öncsatlakozási és a többszkennelt lekérdezésekben, ami helytelen eredményeket eredményezhet.
Kiszolgáló nélküli számítási költségek
A többmotoros ABAC kiszolgáló nélküli számítási erőforrásokat használ a részletes hozzáférési szabályzatok kiszolgálóoldali kényszerítéséhez. Ezekért az erőforrásokért az ügyfeleknek díjat kell fizetniük. A díjszabással kapcsolatos információkért tekintse meg a bétaverziós termék díjszabását.
A számlázási rendszer táblához hozzáféréssel rendelkező felhasználók lekérdezhetik system.billing.usage , hogy mennyi díjat számítottak fel. A következő lekérdezés például felhasználónként lebontja a számítási költségeket:
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;
Limitations
- Külső motorok esetén csak az olvasási műveletek támogatottak, ha finomszemcsés hozzáférés-vezérlés (FGAC) van érvényben. Az íráshoz mentesítenie kell az írási principalt az ABAC-szabályzat alól.
- A dinamikus nézetek használata nem támogatott.
- Az oszlopok kivetítése
VARIANTnem támogatott. - A(z)
BINARYoszlopokon való szűrés nem támogatott. - Azok az oszlopmaszkoló függvények, amelyek visszatérési típusa eltér az eredeti oszloptípustól, nem támogatottak.
- A nagy aggregációk teljesítménycsökkenést tapasztalhatnak.