Rivitason turvallisuussyntaksin viite

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.