Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Denne artikkelen dokumenterer syntaksen for å definere radnivå-sikkerhetsregler (RLS) i OneLake-sikkerhet. For å anvende en RLS-regel på en tabell, se Opprett og administrer OneLake sikkerhetsroller.
RLS-regler bruker SQL-syntaks for å angi radene som en bruker kan se. Syntaksen tar form av en SQL-setning SELECT med RLS-reglene definert i klausulen WHERE . RLS-regler støtter kun delmengden av SQL definert i denne artikkelen. Forespørsler med ugyldig RLS-syntaks, eller RLS-syntaks som ikke samsvarer med den underliggende tabellen, resulterer i at ingen rader vises for brukerne, eller at det oppstår spørringsfeil i SQL-analyse-endepunktet.
Når du skriver RLS-uttrykk, husk følgende beste praksis:
- Unngå vage eller altfor komplekse RLS-uttrykk.
- Sterkt typede uttrykk med heltalls- eller strengoppslag som bruker "=" er de sikreste og lettest å forstå.
- Bruk heltallskolonner for sortering og større eller mindre enn-operasjoner.
- Unngå strengekvivalenser hvis du ikke kjenner formatet på inputdataene, spesielt for Unicode-tegn eller aksentfølsomhet.
Sikkerhet på radnivå vurderer strengdata som kasus-sensitive ved å bruke følgende sortering og sammenligninger: Latin1_General_100_CI_AS_KS_WS_SC_UTF8.
Syntaks
Maksimalt antall tegn i en sikkerhetsregel på radnivå er 1000.
Alle sikkerhetsregler på radnivå tar følgende skjema:
SELECT * FROM {schema_name}.{table_name} WHERE {column_level_boolean_1}{column_level_boolean_2}...{column_level_boolean_N}
Eksempel:
SELECT * FROM Sales WHERE Amount > 50000 AND State='CA'
| Plassholder | Beskrivelse |
|---|---|
| {schema_name} | Navnet på skjemaet som inneholder {table_name}. Hvis elementet støtter skjemaer, må du inkludere {schema_name}. |
| {table_name} | Navnet på tabellen som RLS-predikatet gjelder for. Denne verdien må samsvare nøyaktig med navnet på tabellen, ellers viser RLS ingen rader. Bruk hakeparentes [] for å escape-tabellnavn med spesialtegn. Eksempel: SELECT * FROM [dbo].[Secret.Table]. |
| {column_level_boolean} | En boolsk setning som inneholder følgende komponenter: * Kolonnenavn: Navnet på en kolonne i {table_name}, slik det vises i Delta-loggskjemaet. Du kan formatere kolonnenavn som enten {column_name} eller {table_name}. {column_name}. * Operator: En av de støttede operatorene som evaluerer kolonnenavnet og verdien til en boolsk verdi. * Verdi: En statisk verdi eller sett med verdier å evaluere mot. Du kan ha én eller flere boolske setninger atskilt med AND eller OR. |
Støttede operatorer
Sikkerhetsregler på radnivå støtter følgende operatorer og nøkkelord:
| Operatør | Beskrivelse |
|---|---|
= (likestilt) |
Evaluerer til sann hvis de to verdiene er samme datatype og nøyaktige treff. |
<> (er ikke lik) |
Evalueres til sann hvis de to verdiene ikke er samme datatype og ikke samsvarer nøyaktig. |
> (større enn) |
Evalueres til sann hvis kolonneverdien er større enn evalueringsverdien. For strengverdier bruker denne operatoren bitvis sammenligning for å avgjøre om én streng er større enn den andre. |
>= (større enn eller lik) |
Evalueres til sann hvis kolonneverdien er større enn eller lik evalueringsverdien. For strengverdier bruker denne operatoren bitvis sammenligning for å avgjøre om én streng er større enn eller lik den andre. |
< (mindre enn) |
Evaluerer til sann hvis kolonneverdien er mindre enn evalueringsverdien. For strengverdier bruker denne operatoren bitvis sammenligning for å avgjøre om én streng er mindre enn den andre. |
<= (mindre enn eller lik) |
Evalueres til sann hvis kolonneverdien er mindre enn eller lik evalueringsverdien. For strengverdier bruker denne operatoren bitvis sammenligning for å avgjøre om én streng er mindre enn eller lik den andre. |
IN |
Evalueres til sann hvis noen av evalueringsverdiene er den samme datatypen og samsvarer nøyaktig med kolonneverdien. |
NOT |
Evalueres til sann hvis noen av evalueringsverdiene ikke er samme datatype eller ikke et nøyaktig samsvar med kolonneverdien. |
AND |
Kombinerer forrige utsagn og påfølgende utsagn ved å bruke en boolsk OG-operasjon. Begge setningene må være sanne for at hele predikatet skal være sant. |
OR |
Kombinerer forrige setning og påfølgende setning ved å bruke en boolsk ELLER-operasjon. En av uttrykkene må være sann for at hele predikatet skal være sant. |
TRUE |
Det boolske uttrykket for sann. |
FALSE |
Boolsk uttrykk for usann. |
BLANK |
Den tomme datatypen, som du kan bruke med IS-operatoren. Eksempel: row IS BLANK. |
NULL |
Null-datatypen, som du kan bruke med IS-operatoren. Eksempel: row IS NULL. |