Beveiliging op rijniveau implementeren in Microsoft Fabric-datawarehousing
Van toepassing op:✅ SQL Analytics-eindpunt en -magazijn in Microsoft Fabric
Met beveiliging op rijniveau (RLS) in Fabric Warehouse en SQL Analytics-eindpunt kunt u de toegang tot rijen in een databasetabel beheren op basis van gebruikersrollen en predicaten. Zie Beveiliging op rijniveau in Fabric-datawarehousing voor meer informatie.
In deze handleiding wordt u begeleid bij de stappen voor het implementeren van beveiliging op rijniveau in Microsoft Fabric Warehouse of SQL Analytics-eindpunt.
Vereisten
Voordat u begint, controleert u of u het volgende hebt:
- Een Fabric-werkruimte met een actieve capaciteit of proefcapaciteit.
- Een Fabric Warehouse- of SQL-analyse-eindpunt op een Lakehouse.
- De beheerders-, lid- of inzenderrechten voor de werkruimte, of verhoogde machtigingen voor het warehouse- of SQL-analyse-eindpunt.
1. Verbinding maken
- Meld u aan met een account met verhoogde toegang op het warehouse- of SQL-analyse-eindpunt. (De rol Beheerder/Lid/Inzender in de werkruimte of Beheermachtigingen voor het warehouse- of SQL-analyse-eindpunt).
- Open de werkruimte Fabric en navigeer naar het eindpunt warehouse of SQL-analyse waar u beveiliging op rijniveau wilt toepassen.
2. Beveiligingsbeleid definiëren
Bepaal de rollen en predicaten die u wilt gebruiken om de toegang tot gegevens te beheren. Rollen bepalen wie toegang heeft tot gegevens en bepalen de criteria voor toegang.
Maak beveiligingspredicaten. Beveiligingspredicaten zijn voorwaarden die bepalen tot welke rijen een gebruiker toegang heeft. U kunt beveiligingspredicaten maken als inline tabelwaardefuncties. In deze eenvoudige oefening wordt ervan uitgegaan dat er een kolom in uw gegevenstabel staat,
UserName_column
die de relevante gebruikersnaam bevat die is ingevuld door de systeemfunctie USER_NAME().-- Creating schema for Security CREATE SCHEMA Security; GO -- Creating a function for the SalesRep evaluation CREATE FUNCTION Security.tvf_securitypredicate(@UserName AS varchar(50)) RETURNS TABLE WITH SCHEMABINDING AS RETURN SELECT 1 AS tvf_securitypredicate_result WHERE @UserName = USER_NAME(); GO -- Using the function to create a Security Policy CREATE SECURITY POLICY YourSecurityPolicy ADD FILTER PREDICATE Security.tvf_securitypredicate(UserName_column) ON sampleschema.sampletable WITH (STATE = ON); GO
Vervang
YourSecurityPolicy
door uw beleidsnaam,tvf_securitypredicate
door de naam van uw predicaatfunctie,sampleschema
door de naam van uw schema ensampletable
door de naam van de doeltabel.Vervang
UserName_column
door een kolom in de tabel die gebruikersnamen bevat.Vervang
WHERE @UserName = USER_NAME();
door eenWHERE
component die overeenkomt met het gewenste beveiligingsfilter op basis van predicaat. Hiermee worden bijvoorbeeld de gegevens gefilterd waarin deUserName
kolom, die is toegewezen aan de@UserName
parameter, overeenkomt met het resultaat van de systeemfunctie USER_NAME().Herhaal deze stappen om zo nodig beveiligingsbeleid te maken voor andere tabellen.
3. Beveiliging op rijniveau testen
Meld u aan bij Fabric als gebruiker die lid is van een rol met een gekoppeld beveiligingsbeleid. Gebruik de volgende query om te controleren of de waarde moet overeenkomen in de tabel.
SELECT USER_NAME()
Voer een query uit op de databasetabellen om te controleren of beveiliging op rijniveau werkt zoals verwacht. Gebruikers moeten alleen gegevens zien die voldoen aan het beveiligingspredicaat dat is gedefinieerd in hun rol. Voorbeeld:
SELECT * FROM sampleschema.sampletable
Vergelijkbare gefilterde resultaten voor de gebruiker worden gefilterd met andere toepassingen die gebruikmaken van Microsoft Entra-verificatie voor databasetoegang. Zie Microsoft Entra-verificatie als alternatief voor SQL-verificatie in Microsoft Fabric voor meer informatie.
4. Beveiliging op rijniveau bewaken en onderhouden
Bewaak en werk uw beveiligingsbeleid op rijniveau regelmatig bij naarmate uw beveiligingsvereisten zich ontwikkelen. Houd roltoewijzingen bij en zorg ervoor dat gebruikers over de juiste toegang beschikken.