Delen via


Gevoelige tabelgegevens filteren met rijfilters en kolommaskers

Dit artikel bevat richtlijnen en voorbeelden voor het gebruik van rijfilters, kolommaskers en toewijzingstabellen om gevoelige gegevens in uw tabellen te filteren. Voor deze functies is Unity Catalog vereist.

Wat zijn rijfilters?

Met rijfilters kunt u een filter toepassen op een tabel, zodat query's alleen rijen retourneren die voldoen aan de filtercriteria. U implementeert een rijfilter als een door de gebruiker gedefinieerde SQL-functie (UDF). Python en Scala UDF's worden ook ondersteund, maar alleen wanneer ze zijn verpakt in SQL UDF's.

Wat zijn kolommaskers?

Met kolommaskers kunt u een maskeringsfunctie toepassen op een tabelkolom. De maskeringsfunctie evalueert tijdens queryruntime, waarbij elke verwijzing van de doelkolom wordt vervangen door de resultaten van de maskeringsfunctie. Voor de meeste gebruikssituaties bepalen kolommaskers of de oorspronkelijke kolomwaarde moet worden geretourneerd of op basis van de identiteit van de aanroepende gebruiker moet worden aangepast. Kolommaskers zijn expressies die zijn geschreven als SQL UDF's of als Python of Scala UDF's die zijn verpakt in SQL UDF's.

Op elke tabelkolom kan slechts één maskeringsfunctie worden toegepast. De maskeringsfunctie gebruikt de niet-gemaskeerde waarde van de kolom als invoer en retourneert de gemaskeerde waarde als resultaat. De retourwaarde van de maskeringsfunctie moet hetzelfde type zijn als de kolom die wordt gemaskeerd. De maskeringsfunctie kan ook extra kolommen als invoerparameters gebruiken en deze gebruiken in de maskeringslogica.

Wat is het verschil tussen deze filters en dynamische weergaven?

Met dynamische weergaven, rijfilters en kolommaskers kunt u complexe logica toepassen op tabellen en hun filterbeslissingen tijdens queryruntime verwerken.

Een dynamische weergave is een geabstraheerde, alleen-lezen weergave van een of meer brontabellen. De gebruiker heeft toegang tot een dynamische weergave zonder directe toegang tot de brontabellen. Als u een dynamische weergave maakt, wordt een nieuwe tabelnaam gedefinieerd die niet overeenkomt met de naam van brontabellen of andere tabellen en weergaven die aanwezig zijn in hetzelfde schema.

Aan de andere kant past het koppelen van een rijfilter of kolommasker aan een doeltabel de bijbehorende logica rechtstreeks toe op de tabel zelf zonder nieuwe tabelnamen te introduceren. Volgende query's kunnen rechtstreeks naar de doeltabel verwijzen met behulp van de oorspronkelijke naam.

Gebruik dynamische weergaven als u transformatielogica, zoals filters en maskers, wilt toepassen op alleen-lezentabellen en als het acceptabel is voor gebruikers om te verwijzen naar de dynamische weergaven met verschillende namen. Als u gegevens wilt filteren wanneer u deze deelt met Delta Sharing, moet u dynamische weergaven gebruiken. Gebruik rijfilters en kolommaskers als u expressies voor specifieke gegevens wilt filteren of berekenen, maar gebruikers nog steeds toegang wilt bieden tot de tabellen met hun oorspronkelijke namen.

Voordat u begint

Als u rijfilters en kolommaskers wilt toevoegen aan tabellen, moet u het volgende hebben:

U moet ook voldoen aan de volgende vereisten:

  • Als u een functie wilt toewijzen waarmee rijfilters of kolommaskers aan een tabel worden toegevoegd, moet u de bevoegdheid EXECUTE hebben voor de functie, USE SCHEMA in het schema en USE CATALOG in de bovenliggende catalogus.
  • Als u filters of maskers toevoegt wanneer u een nieuwe tabel maakt, moet u de CREATE TABLE bevoegdheid voor het schema hebben.
  • Als u filters of maskers toevoegt aan een bestaande tabel, moet u de eigenaar van de tabel zijn.

Als u toegang wilt krijgen tot een tabel met rijfilters of kolommaskers, moet uw rekenresource voldoen aan een van de volgende vereisten:

  • Een SQL Warehouse.
  • Standaardtoegangsmodus (voorheen modus voor gedeelde toegang) op Databricks Runtime 12.2 LTS of hoger.
  • Toegewezen toegangsmodus (voorheen modus voor toegang tot één gebruiker) in Databricks Runtime 15.4 LTS of hoger.

U kunt rijfilters of kolommaskers niet lezen met toegewezen rekenkracht op Databricks Runtime 15.3 of lager.

Als u wilt profiteren van het filteren van gegevens in Databricks Runtime 15.4 LTS en hoger, moet u ook controleren of uw werkruimte is ingeschakeld voor serverloze berekeningen, omdat de functionaliteit voor gegevensfilters die ondersteuning biedt voor rijfilters en kolommaskers wordt uitgevoerd op serverloze berekeningen. Er worden mogelijk kosten in rekening gebracht voor serverloze rekenresources wanneer u rekenkracht gebruikt die is geconfigureerd als toegewezen toegangsmodus om tabellen te lezen die rijfilters of kolommaskers gebruiken. Zie Gedetailleerd toegangsbeheer voor toegewezen rekenkracht (voorheen rekenkracht van één gebruiker).

Een rijfilter toepassen

Als u een rijfilter wilt maken, schrijft u een functie (UDF) om het filterbeleid te definiëren en past u dit vervolgens toe op een tabel. Elke tabel kan slechts één rijfilter hebben. Een rijfilter accepteert nul of meer invoerparameters waarbij elke invoerparameter wordt gekoppeld aan één kolom van de bijbehorende tabel.

U kunt een rijfilter toepassen met behulp van Catalog Explorer of SQL-opdrachten. In de instructies van Catalog Explorer wordt ervan uitgegaan dat u al een functie hebt gemaakt en deze hebt geregistreerd in Unity Catalog. De SQL-instructies bevatten voorbeelden van het maken van een rijfilterfunctie en het toepassen op een tabel.

Catalogusverkenner

  1. Klik in uw Azure Databricks-werkruimte op cataloguspictogramCatalogus.
  2. Blader of zoek naar de tabel die u wilt filteren.
  3. Klik op het tabblad Overzicht op Rijfilter: Filter toevoegen.
  4. Selecteer in het dialoogvenster Rijfilter toevoegen de catalogus en het schema die de filterfunctie bevatten en selecteer vervolgens de functie.
  5. Bekijk in het uitgevouwen dialoogvenster de functiedefinitie en selecteer de tabelkolommen die overeenkomen met de kolommen die zijn opgenomen in de functie-instructie.
  6. Klik op Toevoegen.

Als u het filter uit de tabel wilt verwijderen, klikt u op fx-rijfilter en klikt u op Verwijderen.

SQL

Als u een rijfilter wilt maken en deze vervolgens wilt toevoegen aan een bestaande tabel, gebruikt u CREATE FUNCTION en past u de functie toe met behulp van ALTER TABLE. U kunt ook een functie toepassen wanneer u een tabel maakt met behulp van CREATE TABLE.

  1. Het rijfilter maken:

    CREATE FUNCTION <function_name> (<parameter_name> <parameter_type>, ...)
    RETURN {filter clause whose output must be a boolean};
    
  2. Pas het rijfilter toe op een tabel met behulp van een kolomnaam:

    ALTER TABLE <table_name> SET ROW FILTER <function_name> ON (<column_name>, ...);
    

Aanvullende syntaxisvoorbeelden:

  • Pas het rijfilter toe op een tabel met behulp van een constante letterlijke waarde die overeenkomt met een functieparameter:

    ALTER TABLE <table_name> SET ROW FILTER <function_name> ON (<constant_literal>, ...);
    
  • Een rijfilter uit een tabel verwijderen:

    ALTER TABLE <table_name> DROP ROW FILTER;
    
  • Een rijfilter wijzigen:

    Run a DROP FUNCTION statement to drop the existing function, or use CREATE OR REPLACE FUNCTION to replace it.
    
  • Een rijfilter verwijderen:

    ALTER TABLE <table_name> DROP ROW FILTER;
    DROP FUNCTION <function_name>;
    

    Notitie

    U moet de ALTER TABLE ... DROP ROW FILTER opdracht uitvoeren voordat u de functie neer zet. Als u dat niet doet, heeft de tabel een niet-toegankelijke status.

    Als de tabel op deze manier ontoegankelijk wordt, wijzigt u de tabel en verwijdert u de verwijzing naar het verweesde rijfilter met behulp van ALTER TABLE <table_name> DROP ROW FILTER;.

Zie ook ROW FILTER clausule.

Voorbeelden van rijfilters

In dit voorbeeld wordt een door de gebruiker gedefinieerde SQL-functie gemaakt die van toepassing is op leden van de groep admin in de regio US.

Wanneer deze voorbeeldfunctie wordt toegepast op de sales tabel, hebben leden van de admin groep toegang tot alle records in de tabel. Als de functie wordt aangeroepen door een niet-beheerder, mislukt de RETURN_IF voorwaarde en wordt de region='US'-expressie geëvalueerd, waarbij de tabel wordt gefilterd om alleen records in de US regio weer te geven.

CREATE FUNCTION us_filter(region STRING)
RETURN IF(IS_ACCOUNT_GROUP_MEMBER('admin'), true, region='US');

Pas de functie toe op een tabel als rijfilter. Volgende query's uit de sales tabel retourneren vervolgens een subset rijen.

CREATE TABLE sales (region STRING, id INT);
ALTER TABLE sales SET ROW FILTER us_filter ON (region);

Schakel het rijfilter uit. Toekomstige gebruikersquery's uit de sales tabel retourneren vervolgens alle rijen in de tabel.

ALTER TABLE sales DROP ROW FILTER;

Maak een tabel met de functie die is toegepast als een rijfilter als onderdeel van de instructie CREATE TABLE. Toekomstige query's uit de sales tabel retourneren vervolgens een subset rijen.

CREATE TABLE sales (region STRING, id INT)
WITH ROW FILTER us_filter ON (region);

Een kolommasker toepassen

Als u een kolommasker wilt toepassen, maakt u een functie (UDF) en past u deze toe op een tabelkolom.

U kunt een kolommasker toepassen met behulp van Catalog Explorer of SQL-opdrachten. In de instructies van Catalog Explorer wordt ervan uitgegaan dat u al een functie hebt gemaakt en deze hebt geregistreerd in Unity Catalog. De SQL-instructies bevatten voorbeelden van het maken van een kolommaskerfunctie en het toepassen ervan op een tabelkolom.

Catalogusverkenner

  1. Klik in uw Azure Databricks-werkruimte op cataloguspictogramCatalogus.
  2. Blader of zoek naar de tabel.
  3. Zoek op het tabblad Overzicht de rij waarop u het kolommasker wilt toepassen en klik op het pictogram Bewerken Masker bewerkingspictogram.
  4. Selecteer in het dialoogvenster Kolommasker toevoegen de catalogus en het schema die de filterfunctie bevatten, en selecteer vervolgens de functie.
  5. Bekijk de functiedefinitie in het uitgevouwen dialoogvenster. Als de functie naast de gemaskeerde kolom parameters bevat, selecteert u de tabelkolommen waarin u deze aanvullende functieparameters wilt casten.
  6. Klik op Toevoegen.

Als u het kolommasker uit de tabel wilt verwijderen, klikt u op fx-kolommasker in de tabelrij en klikt u op verwijderen.

SQL

Als u een kolommasker wilt maken en aan een bestaande tabelkolom wilt toevoegen, gebruikt u CREATE FUNCTION en past u de maskeringsfunctie toe met behulp van ALTER TABLE. U kunt ook een functie toepassen wanneer u een tabel maakt met behulp van CREATE TABLE.

U gebruikt SET MASK om de maskeringsfunctie toe te passen. Binnen de MASK component kunt u een van de ingebouwde Runtime-functies van Azure Databricks gebruiken of andere door de gebruiker gedefinieerde functies aanroepen. Veelvoorkomende gebruiksvoorbeelden zijn het controleren van de identiteit van de aanroepende gebruiker die de functie uitvoert met behulp van current_user( ), of het ophalen van de groepen waarvan ze lid zijn met is_account_group_member( ). Zie kolom mask clausule en ingebouwde functiesvoor meer informatie.

  1. Een kolommasker maken:

    CREATE FUNCTION <function_name> (<parameter_name> <parameter_type>, ...)
    RETURN {expression with the same type as the first parameter};
    
  2. Pas het kolommasker toe op een kolom in een bestaande tabel:

    ALTER TABLE <table_name> ALTER COLUMN <col_name> SET MASK <mask_func_name> USING COLUMNS <additional_columns>;
    

Aanvullende syntaxisvoorbeelden:

  • Pas het kolommasker toe op een kolom in een bestaande tabel met behulp van een constante letterlijke waarde die overeenkomt met een functieparameter:

    ALTER TABLE <table_name> ALTER COLUMN <col_name> SET MASK <mask_func_name> USING COLUMNS (<constant_name>, ...);
    
  • Een kolommasker verwijderen uit een kolom in een tabel:

    ALTER TABLE <table_name> ALTER COLUMN <column where mask is applied> DROP MASK;
    
  • Wijzig een kolommasker, DROP de bestaande functie of gebruik CREATE OR REPLACE TABLE.

  • Een kolommasker verwijderen:

    ALTER TABLE <table_name> ALTER COLUMN <column where mask is applied> DROP MASK;
    DROP FUNCTION <function_name>;
    

    Notitie

    U moet de opdracht ALTER TABLE uitvoeren voordat u de functie neer zet of de tabel niet toegankelijk is.

    Als de tabel op deze manier ontoegankelijk wordt, wijzigt u de tabel en verwijdert u de verwijzing naar het verweesde masker met behulp van ALTER TABLE <table_name> ALTER COLUMN <column where mask is applied> DROP MASK;.

Voorbeelden van kolommaskers

In dit voorbeeld maakt u een door de gebruiker gedefinieerde functie waarmee de kolom ssn wordt gemaskeerd, zodat alleen gebruikers die lid zijn van de HumanResourceDept groep waarden in die kolom kunnen weergeven.

CREATE FUNCTION ssn_mask(ssn STRING)
  RETURN CASE WHEN is_member('HumanResourceDept') THEN ssn ELSE '***-**-****' END;

Pas de nieuwe functie toe op een tabel als kolommasker. U kunt het kolommasker toevoegen wanneer u de tabel aanmaakt of later.

--Create the `users` table and apply the column mask in a single step:

CREATE TABLE users (
  name STRING,
  ssn STRING MASK ssn_mask);
--Create the `users` table and apply the column mask after:

CREATE TABLE users
  (name STRING, ssn STRING);

ALTER TABLE users ALTER COLUMN ssn SET MASK ssn_mask;

Query's in die tabel retourneren nu gemaskeerde ssn kolomwaarden wanneer de querygebruiker geen lid is van de HumanResourceDept groep:

SELECT * FROM users;
  James  ***-**-****

Als u het kolommasker wilt uitschakelen zodat query's de oorspronkelijke waarden in de kolom ssn retourneren:

ALTER TABLE users ALTER COLUMN ssn DROP MASK;

Koppeltabellen gebruiken om een toegangsbeheerlijst te maken

Om beveiliging op rijniveau te bereiken, kunt u overwegen een koppelingstabel (of toegangscontrolelijst) te definiëren. Een uitgebreide toewijzingstabel codeert welke gegevensrijen in de oorspronkelijke tabel toegankelijk zijn voor bepaalde gebruikers of groepen. Koppeltabellen zijn handig omdat ze eenvoudige integratie met uw feitentabellen bieden door middel van rechtstreekse koppelingen.

Deze methodologie behandelt veel use cases met aangepaste vereisten. Voorbeelden zijn:

  • Beperkingen opleggen op basis van de aangemelde gebruiker, terwijl er verschillende regels voor specifieke gebruikersgroepen worden gehanteerd.
  • Complexe hiërarchieën, zoals organisatiestructuren, maken waarvoor diverse sets regels zijn vereist.
  • Complexe beveiligingsmodellen repliceren vanuit externe bronsystemen.

Door toewijzingstabellen te gebruiken, kunt u deze uitdagende scenario's uitvoeren en robuuste beveiligings-implementaties op rij- en kolomniveau garanderen.

Voorbeelden van koppelingslijsten

Gebruik een mappingstabel om te controleren of de huidige gebruiker in de lijst staat.

USE CATALOG main;

Maak een nieuwe koppelingstabel.

DROP TABLE IF EXISTS valid_users;

CREATE TABLE valid_users(username string);
INSERT INTO valid_users
VALUES
  ('fred@databricks.com'),
  ('barney@databricks.com');

Maak een nieuw filter:

Notitie

Alle filters worden uitgevoerd met de rechten van de definer, met uitzondering van functies die de gebruikerscontext controleren (bijvoorbeeld de CURRENT_USER en IS_MEMBER functies) die als aanroeper worden uitgevoerd.

In dit voorbeeld controleert de functie of de huidige gebruiker zich in de valid_users tabel bevindt. Als de gebruiker wordt gevonden, retourneert de functie true.

DROP FUNCTION IF EXISTS row_filter;

CREATE FUNCTION row_filter()
  RETURN EXISTS(
    SELECT 1 FROM valid_users v
    WHERE v.username = CURRENT_USER()
);

In het onderstaande voorbeeld wordt het rijfilter toegepast tijdens het maken van de tabel. U kunt het filter ook later toevoegen met behulp van een ALTER TABLE instructie. Wanneer u deze op een hele tabel toepast, gebruikt u de ON ()-syntaxis. Gebruik ON (row);voor een specifieke rij.

DROP TABLE IF EXISTS data_table;

CREATE TABLE data_table
  (x INT, y INT, z INT)
  WITH ROW FILTER row_filter ON ();

INSERT INTO data_table VALUES
  (1, 2, 3),
  (4, 5, 6),
  (7, 8, 9);

Selecteer gegevens uit de tabel. Hiermee worden alleen gegevens geretourneerd als de gebruiker zich in de valid_users tabel bevindt.

SELECT * FROM data_table;

Maak een mappingtabel met accounts die altijd toegang hebben om alle rijen in de tabel te kunnen bekijken, ongeacht de waarden in de kolommen.

CREATE TABLE valid_accounts(account string);
INSERT INTO valid_accounts
VALUES
  ('admin'),
  ('cstaff');

Maak nu een SQL UDF die true retourneert als de waarden van alle kolommen in de rij kleiner zijn dan vijf of als de aanroepende gebruiker lid is van de bovenstaande toewijzingstabel.

CREATE FUNCTION row_filter_small_values (x INT, y INT, z INT)
  RETURN (x < 5 AND y < 5 AND z < 5)
  OR EXISTS(
    SELECT 1 FROM valid_accounts v
    WHERE IS_ACCOUNT_GROUP_MEMBER(v.account));

Pas ten slotte de SQL UDF als rijfilter toe op de tabel:

ALTER TABLE data_table SET ROW FILTER row_filter_small_values ON (x, y, z);

Ondersteuning en beperkingen

Rijfilters en kolommaskers worden niet ondersteund met alle Azure Databricks-functionaliteit of op alle rekenresources. In deze sectie vindt u een lijst met ondersteunde functionaliteit en beperkingen.

Ondersteunde functies en indelingen

Deze lijst met ondersteunde functionaliteit is niet volledig. Sommige items worden weergegeven omdat ze niet worden ondersteund tijdens de openbare preview.

  • Databricks SQL- en Databricks-notebooks voor SQL-workloads worden ondersteund.
  • DML-opdrachten door gebruikers met MODIFY bevoegdheden worden ondersteund. Filters en maskers worden toegepast op de gegevens die worden gelezen door UPDATE- en DELETE-instructies en worden niet toegepast op gegevens die zijn geschreven (inclusief INSERT).
  • Ondersteunde gegevensindelingen:
    • Delta en Parquet voor beheerde en externe tabellen.
    • Meerdere andere gegevensindelingen voor buitenlandse tabellen die zijn geregistreerd in Unity Catalog met behulp van Lakehouse Federation.
  • Beleidsparameters kunnen constante expressies bevatten (tekenreeksen, numeriek, intervallen, booleaanse waarden, null-waarden).
  • SQL-, Python- en Scala UDF's worden ondersteund als rijfilter- of kolommaskerfuncties als ze zijn geregistreerd in Unity Catalog. Python- en Scala-UDF's moeten worden verpakt in een SQL UDF.
  • U kunt weergaven maken in tabellen die verwijzen naar kolommaskers of rijfilters, maar u kunt geen kolommaskers of rijfilters toevoegen aan een weergave.
  • Delta Lake-wijzigingsgegevensfeeds worden ondersteund als het schema compatibel is met de rijfilters en kolommaskers die van toepassing zijn op de doeltabel.
  • Vreemde tabellen worden ondersteund.
  • Tabelsampling wordt ondersteund.
  • MERGE-instructies worden ondersteund wanneer brontabellen, doeltabellen of beide gebruikmaken van rijfilters en kolommaskers. Dit omvat tabellen met rijfilterfuncties die eenvoudige subquerys bevatten. Beperkingen worden vermeld in de volgende sectie.
  • Databricks SQL gerealiseerde weergaven en Databricks SQL streamingtabellen ondersteunen rijfilters en kolommaskers (publieke preview):

    • U kunt rijfilters en kolommaskers toevoegen aan een databricks SQL-gerealiseerde weergave of streamingtabel. Het toevoegen van maskers moet declaratief worden uitgevoerd wanneer de gerealiseerde weergave of streamingtabel is gedefinieerd. Zie CREATE MATERIALIZED VIEW of CREATE STREAMING TABLE.
    • U kunt databricks SQL gerealiseerde weergaven of streamingtabellen definiëren voor tabellen die rijfilters en kolommaskers bevatten.
  • Gematerializeerde weergaven en streamingtabellen die zijn gedeclareerd en gepubliceerd in DLT ondersteunen rijfilters of kolommaskers (publieke preview):

    • U kunt rijfilters en kolommaskers toevoegen aan een gerealiseerde DLT-weergave of streamingtabel.
    • U kunt gerealiseerde DLT-weergaven of streamingtabellen definiëren voor tabellen met rijfilters en kolommaskers.

    Zie Tabellen publiceren met rijfilters en kolommaskers.

Aanbevelingen voor prestaties

Rijfilters en kolommaskers bepalen de zichtbaarheid van gegevens door ervoor te zorgen dat gebruikers de inhoud van de waarden van de basistabellen niet kunnen weergeven voordat ze filteren en maskeren. Ze presteren goed als antwoord op query's onder veelvoorkomende gebruikssituaties. In minder gangbare toepassingen, waarbij de query-engine moet kiezen tussen het optimaliseren van queryprestaties en het beschermen tegen het lekken van informatie uit de gefilterde/gemaskeerde waarden, wordt altijd de veilige beslissing genomen ten koste van enige impact op de queryprestaties. Als u deze invloed op de prestaties wilt minimaliseren, past u de volgende aanbevelingen toe:

  • Eenvoudige beleidsfuncties gebruiken: Beleidsfuncties met minder expressies presteren vaak beter dan complexere expressies. Vermijd het gebruik van toewijzingstabellen en expressiesubquery's ten gunste van eenvoudige CASE-functies.
  • Verminder het aantal functieargumenten: Azure Databricks kan kolomverwijzingen naar de brontabel die het gevolg zijn van argumenten voor beleidsfuncties niet optimaliseren, zelfs niet als deze kolommen niet worden gebruikt in de query. Gebruik beleidsfuncties met minder argumenten, omdat de query's uit deze tabellen beter presteren.
  • Vermijd het toevoegen van rijfilters met te veel AND-vm's: Omdat elke tabel alleen ondersteuning biedt voor het toevoegen van maximaal één rijfilter, is een algemene benadering het combineren van meerdere gewenste beleidsfuncties met AND. Voor elke conjunct neemt echter de kans toe dat de conjunct(en) componenten bevatten die elders in deze tabel worden vermeld en die de prestaties kunnen beïnvloeden (zoals koppeltabellen). Gebruik minder conjuncts om de prestaties te verbeteren.
  • Gebruik deterministische expressies die geen fouten kunnen genereren in tabelbeleid en query's uit deze tabellen: Sommige expressies kunnen fouten veroorzaken als de opgegeven invoer niet geldig is, zoals ANSI-deling. In dergelijke gevallen mag de SQL-compiler bewerkingen met deze expressies (zoals filters) niet te ver in het queryplan pushen om te voorkomen dat er fouten optreden zoals 'delen door nul' die informatie over waarden weergeven voordat u filtert en/of maskeringsbewerkingen uitvoert. Gebruik deterministische expressies die nooit fouten genereren, zoals try_divide in dit voorbeeld.
  • Testquery's uitvoeren op de tabel om de prestaties te meten: Realistische query's maken die de workload vertegenwoordigen die u voor uw tabel verwacht met rijfilters en/of kolommaskers en de prestaties meten. Breng kleine wijzigingen aan in de beleidsfuncties en bekijk hun effecten totdat u een goed evenwicht hebt bereikt tussen prestaties en expressiviteit van de filter- en maskeringslogica.

Beperkingen

  • Databricks Runtime-versies onder 12.2 LTS bieden geen ondersteuning voor rijfilters of kolommaskers. Deze runtimes falen op een veilige manier, wat betekent dat als u probeert toegang te krijgen tot tabellen uit niet-ondersteunde versies van deze runtimes, er geen gegevens worden geretourneerd.
  • Delta Sharing werkt niet met beveiliging op rijniveau of kolommaskers.
  • U kunt geen beveiliging op rijniveau of kolommaskers toepassen op een weergave.
  • Tijdreizen werkt niet met beveiliging op rijniveau of kolommaskers.
  • Padgebaseerde toegang tot bestanden in tabellen met beleid wordt niet ondersteund.
  • Rijfilter- of kolommaskerbeleid met circulaire afhankelijkheden terug naar het oorspronkelijke beleid worden niet ondersteund.
  • Diepe en ondiepe klonen worden niet ondersteund.
  • MERGE-instructies bieden geen ondersteuning voor tabellen met rijfilter- of kolommaskerbeleid dat nesting, aggregaties, vensters, limieten of niet-deterministische functies bevat.
  • Delta Lake-API's worden niet ondersteund.

Beperking van de toegewijde toegangsmodus

U hebt geen toegang tot een tabel met rijfilters of kolommaskers van een toegewezen toegangsresource in Databricks Runtime 15.3 of lager. U kunt de Dedicated Access Mode gebruiken op Databricks Runtime 15.4 LTS of hoger als uw werkruimte is ingeschakeld voor serverloze compute-gebruik. Voor meer informatie, zie fijnmazige toegangscontrole op toegewezen rekenkracht (voorheen rekenkracht van één gebruiker).