Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
Tämä artikkeli dokumentoi OneLake-tietoturvan rivitason turvallisuussääntöjen (RLS ) määrittelyn syntaksin. Jos haluat soveltaa RLS-sääntöä taulukkoon, katso Luo ja hallinnoi OneLake-tietoturvarooleja.
RLS-säännöt käyttävät SQL-syntaksia määrittämään rivit, jotka käyttäjä voi nähdä. Syntaksi on SQL-lauseen SELECT muotoinen, jossa on RLS-säännöt määritelty WHERE lausekkeessa. RLS-säännöt tukevat vain tässä artikkelissa määriteltyä SQL:n osajoukkoa. Kyselyt, joiden RLS-syntaksi on virheellinen, tai RLS-syntaksi, joka ei vastaa taustalla olevaa taulukkoa, johtavat siihen, ettei käyttäjille näytetä rivejä tai SQL-analytiikan päätepisteessä ilmenee kyselyvirheitä.
Kun kirjoitat RLS-lausekkeita, pidä mielessä seuraavat parhaat käytännöt:
- Vältä epämääräisiä tai liian monimutkaisia RLS-ilmentymiä.
- Vahvasti tyypitetyt lausekkeet, joissa on kokonaisluku- tai merkkijonohakuja ja joissa käytetään "=", ovat turvallisimpia ja helpoimmin ymmärrettäviä.
- Käytä kokonaislukusarakkeita lajitteluun ja suurempiin tai pienempiin operaatioihin.
- Vältä merkkijonojen ekvivalenssia, jos et tiedä syötedatan muotoa, erityisesti Unicode-merkkien tai aksenttien herkkyyden osalta.
Rivitason turvallisuus arvioi merkkijonodatan kirjainkoon sensitiivisenä käyttämällä seuraavaa kokoamista lajittelussa ja vertailussa: Latin1_General_100_CI_AS_KS_WS_SC_UTF8.
Syntaksi
Rivitason suojaussäännön merkkien enimmäismäärä on 1 000.
Kaikki rivitason suojaussäännöt ovat seuraavassa muodossa:
SELECT * FROM {schema_name}.{table_name} WHERE {column_level_boolean_1}{column_level_boolean_2}...{column_level_boolean_N}
Esimerkkejä:
SELECT * FROM Sales WHERE Amount > 50000 AND State='CA'
| Paikkamerkki | Description |
|---|---|
| {schema_name} | Skeeman nimi, joka sisältää {table_name}. Jos kohde tukee skeemoja, sinun täytyy sisällyttää {schema_name}. |
| {table_name} | Taulukon nimi, johon RLS-predikaatti pätee. Tämän arvon täytyy täsmälleen vastata taulukon nimeä, muuten RLS ei näytä rivejä. Käytä hakasulkeita [] paetaksesi taulukkojen nimet erikoismerkeillä. Esimerkki: SELECT * FROM [dbo].[Secret.Table]. |
| {column_level_boolean} | Totuusarvolauseke, joka sisältää seuraavat osat: * Sarakkeen nimi: Sarakkeen nimi {table_name}:ssä, kuten se esiintyy Delta-lokikaaviossa. Voit muotoilla sarakkeen nimet joko {column_name} tai {table_name}. {column_name}. * Operaattori: Yksi tuetuista operaattoreista , joka arvioi sarakkeen nimen ja arvon Boolen arvoksi. * Arvo: Staattinen arvo tai joukko arvoja, joita arvioidaan. Sinulla voi olla yksi tai useampi totuusarvolauseke erotettuna AND- tai OR-arvolla. |
Tuetut operaattorit
Rivitason tietoturvasäännöt tukevat seuraavia operaattoreita ja avainsanoja:
| Operaattori | Description |
|---|---|
= (on yhtä suurta) |
Antaa tulokseksi true, jos nämä kaksi arvoa ovat samaa tietotyyppiä ja tarkat vastaavuudet. |
<> (eri suuri kuin) |
Antaa tulokseksi true, jos nämä kaksi arvoa eivät ole samaa tietotyyppiä eivätkä täysin vastaavuuksia. |
> (suurempi kuin) |
Antaa tulokseksi true, jos sarakkeen arvo on suurempi kuin arviointiarvo. Merkkijonoarvojen osalta tämä operaattori käyttää bittitasolla vertailua selvittääkseen, onko yksi merkkijono suurempi kuin toinen. |
>= (suurempi tai yhtä suuri kuin) |
Antaa tulokseksi true, jos sarakkeen arvo on suurempi tai yhtä suuri kuin arviointiarvo. Merkkijonoarvojen osalta tämä operaattori käyttää bittitasolla vertailua määrittääkseen, onko yksi merkkijono suurempi vai yhtä suuri kuin toinen. |
< (pienempi kuin) |
Antaa tulokseksi true, jos sarakkeen arvo on pienempi kuin arviointiarvo. Merkkijonoarvojen osalta tämä operaattori käyttää bittitasolla vertailua selvittääkseen, onko yksi merkkijono pienempi kuin toinen. |
<= (pienempi tai yhtä suuri kuin) |
Antaa tulokseksi true, jos sarakkeen arvo on pienempi tai yhtä suuri kuin arviointiarvo. Merkkijonoarvojen osalta tämä operaattori käyttää bittitasolla vertailua määrittääkseen, onko yksi merkkijono pienempi vai yhtä suuri kuin toinen. |
IN |
Antaa tulokseksi true, jos jokin arviointiarvoista on samaa tietotyyppiä ja vastaa tarkasti sarakkeen arvoa. |
NOT |
Antaa tulokseksi true, jos jokin arviointiarvo ei ole samaa tietotyyppiä tai ei ole tarkka vastaavuus sarakkeen arvolle. |
AND |
Yhdistää edellisen lauseen ja sitä seuraavan lauseen käyttämällä Boolen AND-operaatiota. Molempien lausekkeiden on totettava, jotta koko predikaatti on tosi. |
OR |
Yhdistää edellisen ja sitä seuraavan lauseen käyttämällä Boolen OR -operaatiota. Yhden väittämän on oltava tosi, jotta koko predikaatti on tosi. |
TRUE |
Totuusarvolauseke tosi. |
FALSE |
Epätosi-ehtolauseke. |
BLANK |
Tyhjä tietotyyppi, jota voi käyttää IS-operaattorin kanssa. Esimerkki: row IS BLANK. |
NULL |
Null-datatyyppi, jota voi käyttää IS-operaattorin kanssa. Esimerkki: row IS NULL. |