Delen via


Fijnmazig toegangsbeheer voor toegewezen rekenkracht (voorheen rekenkracht van één gebruiker)

In dit artikel wordt de functionaliteit voor gegevensfiltering geïntroduceerd waarmee gedetailleerde toegangscontrole mogelijk is voor query's die worden uitgevoerd op dedicated compute (all-purpose of jobs compute) met de Dedicated-toegangsmodus geconfigureerd. Zie Toegangsmodi.

Deze gegevensfiltering wordt achter de schermen uitgevoerd met serverloze berekeningen.

Waarom vereisen sommige query's voor toegewezen berekeningen gegevensfilters?

Met Unity Catalog kunt u de toegang tot gegevens in tabelvorm beheren op kolom- en rijniveau (ook wel fijnmazig toegangsbeheer genoemd) met behulp van de volgende functies:

Wanneer gebruikers queryweergaven uitvoeren die gegevens uitsluiten van tabellen waarnaar wordt verwezen of querytabellen die filters en maskers toepassen, kunnen ze een van de volgende rekenresources zonder beperkingen gebruiken:

  • SQL-magazijnen
  • Standaard berekenen (voorheen gedeelde rekenkracht)

Als u echter toegewezen rekenkracht gebruikt om dergelijke query's uit te voeren, moeten berekeningen en uw werkruimte voldoen aan specifieke vereisten:

Als uw toegewezen rekenresource en werkruimte aan deze vereisten voldoen, wordt gegevensfiltering automatisch uitgevoerd wanneer u een query uitvoert op een weergave of tabel die gebruikmaakt van gedetailleerd toegangsbeheer.

Ondersteuning voor gerealiseerde weergaven, streamingtabellen en standaardweergaven

Naast dynamische weergaven, rijfilters en kolommaskers kunt u met gegevensfilters ook query's uitvoeren op de volgende weergaven en tabellen die niet worden ondersteund op toegewezen berekeningen waarop Databricks Runtime 15.3 en hieronder wordt uitgevoerd:

Op toegewezen rekenkracht waarop Databricks Runtime 15.3 en lager wordt uitgevoerd, moet de gebruiker die de query uitvoert in de weergave SELECT hebben op de tabellen en weergaven waarnaar wordt verwezen door de weergave. Dit betekent dat u geen weergaven kunt gebruiken om gedetailleerd toegangsbeheer te bieden. In Databricks Runtime 15.4 met gegevensfiltering heeft de gebruiker die de weergave opvraagt geen toegang nodig tot de tabellen en weergaven waarnaar wordt verwezen.

Hoe werkt het filteren van gegevens op toegewezen computerbronnen?

Wanneer een query toegang heeft tot de volgende databaseobjecten, geeft de toegewezen rekenresource de query door aan serverloze berekeningen om gegevensfiltering uit te voeren:

  • Weergaven die zijn gebouwd op tabellen waarvoor de gebruiker geen SELECT-bevoegdheid heeft
  • Dynamische weergaven
  • Tabellen met rijfilters of kolommaskers gedefinieerd
  • Gematerialiseerde weergaven en streamingtabellen

In het volgende diagram heeft een gebruiker SELECT op table_1, view_2, en table_w_rls, waarop rijfilters zijn toegepast. De gebruiker heeft SELECT niet op table_2, waarnaar wordt verwezen door view_2.

Diagram waarin wordt getoond hoe gegevensfilters werken

De query op table_1 wordt volledig verwerkt door de toegewezen rekenresource, omdat er geen filters vereist zijn. De query's op view_2 en table_w_rls vereisen gegevensfiltering om de gegevens te retourneren waartoe de gebruiker toegang heeft. Deze vragen worden afgehandeld door de gegevensfiltermogelijkheden van serverloze computing.

Welke kosten worden er gemaakt?

Klanten worden in rekening gebracht voor de serverloze rekenresources die worden gebruikt om gegevensfilterbewerkingen uit te voeren. Zie Platformlagen en invoegtoepassingen voor prijsinformatie.

U kunt een query uitvoeren op de gebruikstabel voor systeemfacturering om te zien hoeveel er in rekening is gebracht. Met de volgende query worden bijvoorbeeld de rekenkosten per gebruiker opgesplitst:

SELECT usage_date,
sku_name,
 identity_metadata.run_as,
SUM(usage_quantity) AS `DBUs consumed by FGAC`
FROM system.billing.usage
WHERE usage_date BETWEEN '2024-08-01' AND '2024-09-01'
 AND billing_origin_product = 'FINE_GRAINED_ACCESS_CONTROL'
GROUP BY 1, 2, 3 ORDER BY 1;

Queryprestaties weergeven wanneer gegevensfiltering is ingeschakeld

In de Spark-gebruikersinterface voor toegewezen rekenkracht worden metrische gegevens weergegeven die u kunt gebruiken om inzicht te hebben in de prestaties van uw query's. Voor elke query die u uitvoert op de rekenresource, wordt op het tabblad SQL/Dataframe de weergave van de querygrafiek weergegeven. Als een query betrokken was bij het filteren van gegevens, geeft de gebruikersinterface een RemoteSparkConnectScan-operatorknooppunt onder aan de grafiek weer. In dat knooppunt worden metrische gegevens weergegeven die u kunt gebruiken om queryprestaties te onderzoeken. Zie Compute-informatie weergeven in de Apache Spark-gebruikersinterface.

SparkUI met remoteSparkConnectScan-knooppunt

Vouw het operatorknooppunt RemoteSparkConnectScan uit om metrische gegevens weer te geven die betrekking hebben op vragen als de volgende:

  • Hoeveel tijd kost het filteren van gegevens? Bekijk “totale externe uitvoeringstijd.”
  • Hoeveel rijen bleef er na het filteren van gegevens? Bekijk 'rijenuitvoer'.
  • Hoeveel gegevens (in bytes) zijn geretourneerd na het filteren van gegevens? De uitvoergrootte van rijen weergeven.
  • Hoeveel gegevensbestanden zijn door partitionering verkleind en hoefden niet uit de opslag te worden gelezen? Bekijk 'Bestanden opgeschoond' en 'Grootte van bestanden opgeschoond'.
  • Hoeveel gegevensbestanden kunnen niet worden verwijderd en moeten worden gelezen uit de opslag? Bekijk 'Bestanden gelezen' en 'Grootte van bestanden gelezen'.
  • Van de bestanden die moeten worden gelezen, hoeveel waren er al in de cache? Bekijk 'Cachetreffergrootte' en 'Cachemissersgrootte'.

Beperkingen

  • Er is geen ondersteuning voor schrijf- of vernieuwingsbewerkingen voor tabellen waarop rijfilters of kolommaskers zijn toegepast.

    DML-bewerkingen, zoals INSERT,DELETE, UPDATE, REFRESH TABLEen MERGE, worden niet ondersteund. U kunt alleen lezen (SELECT) uit deze tabellen.

  • Self-joins worden standaard geblokkeerd wanneer gegevensfiltering wordt aangeroepen, maar u kunt ze toestaan door spark.databricks.remoteFiltering.blockSelfJoins op false te zetten op de computer waarop u deze opdrachten uitvoert.

    Voordat u zelfkoppelingen inschakelt voor een toegewezen rekenresource, moet u er rekening mee houden dat een zelfkoppelingsquery die wordt verwerkt door de gegevensfilterfunctionaliteit verschillende momentopnamen van dezelfde externe tabel kan teruggeven.

  • Geen ondersteuning in Docker-images.
  • Als uw werkruimte vóór november 2024 is geïmplementeerd met een firewall, moet u poorten 8443 en 8444 openen om fijnmazig toegangsbeheer in te schakelen voor toegewezen rekenkracht. Zie regels voor netwerkbeveiligingsgroepen.