Implementera säkerhet på radnivå i Microsoft Fabric-datalager
Gäller för:✅ SQL-analysslutpunkt och lager i Microsoft Fabric
Med säkerhet på radnivå (RLS) i Fabric Warehouse och SQL-analysslutpunkten kan du styra åtkomsten till rader i en databastabell baserat på användarroller och predikat. Mer information finns i Säkerhet på radnivå i Fabric-datalager.
Den här guiden beskriver stegen för att implementera säkerhet på radnivå i Microsoft Fabric Warehouse eller SQL-analysslutpunkten.
Förutsättningar
Kontrollera att du har följande innan du börjar:
- En infrastrukturarbetsyta med en aktiv kapacitet eller utvärderingskapacitet.
- En Fabric Warehouse- eller SQL-analysslutpunkt på en Lakehouse.
- Antingen administratörs-, medlems- eller deltagarbehörigheter på arbetsytan eller utökade behörigheter på slutpunkten för lager- eller SQL-analys.
1. Anslut
- Logga in med ett konto med förhöjd åtkomst på slutpunkten för lager- eller SQL-analys. (Antingen administratörs-/medlems-/deltagarrollen på arbetsytan eller Kontrollbehörigheter på slutpunkten för lager- eller SQL-analys).
- Öppna arbetsytan Infrastruktur och navigera till slutpunkten för lager- eller SQL-analys där du vill tillämpa säkerhet på radnivå.
2. Definiera säkerhetsprinciper
Fastställ de roller och predikater som du vill använda för att styra åtkomsten till data. Roller definierar vem som kan komma åt data och predikat definierar villkoren för åtkomst.
Skapa säkerhetspredikat. Säkerhetspredikat är villkor som avgör vilka rader en användare kan komma åt. Du kan skapa säkerhetspredikat som infogade tabellvärdesfunktioner. Den här enkla övningen förutsätter att det finns en kolumn i datatabellen,
UserName_column
, som innehåller det relevanta användarnamnet, som fylls i av systemfunktionen 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
Ersätt
YourSecurityPolicy
med ditt principnamn,tvf_securitypredicate
med namnet på din predikatfunktion,sampleschema
med namnet på schemat ochsampletable
med namnet på måltabellen.Ersätt
UserName_column
med en kolumn i tabellen som innehåller användarnamn.Ersätt
WHERE @UserName = USER_NAME();
med enWHERE
sats som matchar önskat predikatbaserat säkerhetsfilter. Detta filtrerar till exempel de data därUserName
kolumnen, mappad till parametern@UserName
, matchar resultatet av systemfunktionen USER_NAME().Upprepa de här stegen för att skapa säkerhetsprinciper för andra tabeller om det behövs.
3. Testa säkerhet på radnivå
Logga in på Infrastrukturresurser som en användare som är medlem i en roll med en associerad säkerhetsprincip. Använd följande fråga för att verifiera det värde som ska matchas i tabellen.
SELECT USER_NAME()
Fråga databastabellerna för att kontrollera att säkerhet på radnivå fungerar som förväntat. Användare bör endast se data som uppfyller säkerhetspredikatet som definierats i deras roll. Till exempel:
SELECT * FROM sampleschema.sampletable
Liknande filtrerade resultat för användaren filtreras med andra program som använder Microsoft Entra-autentisering för databasåtkomst. Mer information finns i Microsoft Entra-autentisering som ett alternativ till SQL-autentisering i Microsoft Fabric.
4. Övervaka och underhålla säkerhet på radnivå
Övervaka och uppdatera regelbundet dina säkerhetsprinciper på radnivå när dina säkerhetskrav utvecklas. Håll reda på rolltilldelningar och se till att användarna har rätt åtkomst.