Delen via


Dynamische gegevensmaskering in Fabric-datawarehousing

Van toepassing op:✅ SQL Analytics-eindpunt en -magazijn in Microsoft Fabric

Met dynamische gegevensmaskering wordt de blootstelling van gevoelige gegevens beperkt door deze gegevens te maskeren voor niet-gemachtigde gebruikers. Het kan worden gebruikt om het ontwerp en de codering van beveiliging in uw toepassing sterk te vereenvoudigen.

Dynamische gegevensmaskering helpt onbevoegde weergave van gevoelige gegevens te voorkomen door beheerders in staat te stellen op te geven hoeveel gevoelige gegevens moeten worden weergegeven, met minimale gevolgen voor de toepassingslaag. Dynamische gegevensmaskering kan worden geconfigureerd op aangewezen databasevelden om gevoelige gegevens in de resultatensets van query's te verbergen. Met dynamische gegevensmaskering worden de gegevens in de database niet gewijzigd, zodat deze kunnen worden gebruikt met bestaande toepassingen omdat maskeringsregels worden toegepast op queryresultaten. Veel toepassingen kunnen gevoelige gegevens maskeren zonder bestaande query's te wijzigen.

  • Een centraal beleid voor gegevensmaskering werkt rechtstreeks op gevoelige velden in de database.
  • Bevoegde gebruikers of rollen aanwijzen die wel toegang hebben tot de gevoelige gegevens.
  • Dynamische gegevensmaskering bevat volledige maskerings- en gedeeltelijke maskeringsfuncties en een willekeurig masker voor numerieke gegevens.
  • Eenvoudige Transact-SQL-opdrachten definiëren en beheren maskers.

Het doel van dynamische gegevensmaskering is om de blootstelling van gevoelige gegevens te beperken, waardoor gebruikers die geen toegang tot de gegevens mogen hebben, deze niet mogen bekijken. Dynamische gegevensmaskering is niet bedoeld om te voorkomen dat databasegebruikers rechtstreeks verbinding maken met de database en uitgebreide query's uitvoeren die delen van de gevoelige gegevens beschikbaar maken.

Dynamische gegevensmaskering is een aanvulling op andere Fabric-beveiligingsfuncties, zoals beveiliging op kolomniveau en beveiliging op rijniveau. Het wordt ten zeerste aanbevolen om deze functies voor gegevensbescherming samen te gebruiken om de gevoelige gegevens in de database te beveiligen.

Een dynamisch gegevensmasker definiëren

Een maskeringsregel kan worden gedefinieerd voor een kolom in een tabel om de gegevens in die kolom te verdoezelen. Er zijn vier soorten maskers beschikbaar.

Functie Beschrijving Voorbeelden
Standaardinstelling Volledige maskering op basis van de gegevenstypen van de aangewezen velden.

Voor tekenreeksgegevenstypen gebruikt XXXX u (of minder) als de grootte van het veld minder is dan 4 tekens (teken, nchar, varchar, nvarchar, tekst, ntext).

Voor numerieke gegevenstypen wordt een nulwaarde gebruikt (bigint, bit, decimal, int, money, numeriek, smallint, smallmoney, tinyint, float, real).

Gebruik voor datum- en tijdgegevenstypen 1900-01-01 00:00:00.0000000 (datum, datum/tijd2, datum/tijd, datum/tijd, smalldatetime, tijd).

Voor binaire gegevenstypen wordt één byte van ASCII-waarde 0 (binair, varbinair, afbeelding) gebruikt.
Voorbeeld van syntaxis van kolomdefinitie: Phone# varchar(12) MASKED WITH (FUNCTION = 'default()') NULL

Voorbeeld van de syntaxis wijzigen: ALTER COLUMN Gender ADD MASKED WITH (FUNCTION = 'default()')
E-mailen Maskeringsmethode waarmee de eerste letter van een e-mailadres en het constante achtervoegsel '.com' wordt weergegeven, in de vorm van een e-mailadres. aXXX@XXXX.com. Voorbeeld van definitiesyntaxis: Email varchar(100) MASKED WITH (FUNCTION = 'email()') NULL

Voorbeeld van de syntaxis wijzigen: ALTER COLUMN Email ADD MASKED WITH (FUNCTION = 'email()')
Willekeurig Een functie voor willekeurige maskering voor gebruik op elk numeriek type om de oorspronkelijke waarde te maskeren met een willekeurige waarde binnen een opgegeven bereik. Voorbeeld van definitiesyntaxis: Account_Number bigint MASKED WITH (FUNCTION = 'random([start range], [end range])')

Voorbeeld van de syntaxis wijzigen: ALTER COLUMN [Month] ADD MASKED WITH (FUNCTION = 'random(1, 12)')
Aangepaste tekenreeks Maskeringsmethode waarmee de eerste en laatste letters worden weergegeven en een aangepaste opvullingstekenreeks in het midden wordt toegevoegd. prefix,[padding],suffix

Als de oorspronkelijke waarde te kort is om het hele masker te voltooien, wordt een deel van het voor- of achtervoegsel niet weergegeven.
Voorbeeld van definitiesyntaxis: FirstName varchar(100) MASKED WITH (FUNCTION = 'partial(prefix,[padding],suffix)') NULL

Voorbeeld van de syntaxis wijzigen: ALTER COLUMN [Phone Number] ADD MASKED WITH (FUNCTION = 'partial(1,"XXXXXXX",0)')

Dit verandert een telefoonnummer zoals 555.123.1234 5XXXXXXXin .

Aanvullend voorbeeld:

ALTER COLUMN [Phone Number] ADD MASKED WITH (FUNCTION = 'partial(5,"XXXXXXX",0)')

Dit verandert een telefoonnummer zoals 555.123.1234 555.1XXXXXXXin .

Zie Dynamische gegevensmaskering implementeren in Synapse Data Warehouse voor meer voorbeelden.

Machtigingen

Gebruikers zonder beheerders-, lid- of inzenderrechten voor de werkruimte en zonder verhoogde machtigingen voor het magazijn zien gemaskeerde gegevens.

U hebt geen speciale machtigingen nodig om een tabel met een dynamisch gegevensmasker te maken, alleen de standaard CREATE TABLE en ALTER schemamachtigingen.

Voor het toevoegen, vervangen of verwijderen van het masker van een kolom is de ALTER ANY MASK machtiging en ALTER machtiging voor de tabel vereist. Het is geschikt om een beveiligingsfunctionaris te verlenen ALTER ANY MASK .

Gebruikers met SELECT machtigingen voor een tabel kunnen de tabelgegevens bekijken. Kolommen die zijn gedefinieerd als gemaskeerd, geven gemaskeerde gegevens weer. Verdeel de UNMASK machtiging aan een gebruiker om ze in staat te stellen niet-gemaskeerde gegevens op te halen uit de kolommen waarvoor maskering is gedefinieerd.

De CONTROL machtiging voor de database bevat zowel de als UNMASK de ALTER ANY MASK machtiging waarmee de gebruiker niet-gemaskeerde gegevens kan weergeven. Beheerdersgebruikers of rollen, zoals Beheerder, Lid of Inzender, hebben standaard CONTROL-machtigingen voor de database en kunnen standaard niet-gemaskeerde gegevens weergeven. Verhoogde machtigingen voor het magazijn bevatten CONTROL machtigingen.

Beveiligingsoverwegingen: maskering omzeilen met behulp van deductie- of brute-force technieken

Dynamische gegevensmaskering is ontworpen om de ontwikkeling van toepassingen te vereenvoudigen door de blootstelling van gegevens te beperken in een set vooraf gedefinieerde query's die door de toepassing worden gebruikt. Hoewel dynamische gegevensmaskering ook handig kan zijn om onbedoelde blootstelling van gevoelige gegevens te voorkomen bij het rechtstreeks openen van gegevens, is het belangrijk om te weten dat onbevoegde gebruikers met querymachtigingen technieken kunnen toepassen om toegang te krijgen tot de werkelijke gegevens.

Denk bijvoorbeeld aan een gebruiker met voldoende bevoegdheden om query's uit te voeren op het magazijn en probeert de onderliggende gegevens te 'raden' en uiteindelijk de werkelijke waarden af te leiden. Stel dat er een masker is gedefinieerd in de [Employee].[Salary] kolom en dat deze gebruiker rechtstreeks verbinding maakt met de database en begint met het raden van waarden, waardoor de [Salary] waarde uiteindelijk wordt uitgesteld in de Employees tabel:

SELECT ID, Name, Salary FROM Employees
WHERE Salary > 99999 and Salary < 100001;

Resulteert in:

Id Naam Salaris
62543 Jane Doe 0
91245 John Smith 0

Dit laat zien dat dynamische gegevensmaskering niet alleen mag worden gebruikt om gevoelige gegevens van gebruikers met querytoegang tot het eindpunt warehouse of SQL-analyse volledig te beveiligen. Het is geschikt voor het voorkomen van blootstelling aan gevoelige gegevens, maar beschermt niet tegen schadelijke bedoelingen om de onderliggende gegevens af te leiden.

Het is belangrijk om beveiliging op objectniveau goed te beheren met gedetailleerde SQL-machtigingen en om altijd het minimale vereiste machtigingsprincipe te volgen.

Volgende stap