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.
Rivitason suojaus (RLS) on OneLake-suojauksen (esikatselu) ominaisuus, jonka avulla voit määrittää rivitason tietorajoituksia OneLakeen tallennetuille taulukkotieduksille. Käyttäjät voivat määrittää OneLakessa rooleja, jotka sisältävät sääntöjä tietorivien suodattamisesta kyseisen roolin jäsenten osalta. Kun RLS-roolin jäsen siirtyy kyselylle näistä tiedoista, RLS-säännöt arvioidaan ja vain sallitut rivit palautetaan.
Ennakkovaatimukset
- OneLaken kohde, jossa OneLaken suojaus on käytössä. Lisätietoja on artikkelissa OneLake-tietoyhteysroolien käytön aloittaminen.
- Vaihda Lakehousen SQL Analytics -päätepiste Käyttäjän käyttäjätiedot -tilaan Suojaus-välilehden kautta.
- Jos haluat luoda semanttisia malleja, luo DirectLake-malli ohjeiden avulla.
- Katso täydellinen luettelo rajoituksista osasta Tunnetut rajoitukset.
Rivitason suojauksen pakottaminen
OneLake-suojauksen rivitason suojausta käytetään kahdella tavalla:
- Suodatetut taulukot Fabric-moottoreissa: Kyselyt tuettujen Fabric-moottoreiden luetteloon, kuten Spark-muistikirjat, seurauksena käyttäjä näkee vain rivit, jotka he saavat nähdä RLS-sääntöjen mukaisesti.
- Taulukoiden käyttö estetty: taulukoita, joissa käytetään RLS-sääntöjä, ei voida lukea tuettujen Fabric-moottoreiden ulkopuolella.
Suodatetuissa taulukoissa käytetään seuraavia toimintoja:
- Rivitason suojauksen säännöt eivät rajoita käyttöoikeuksia järjestelmänvalvoja-, jäsen- ja osallistujaroolien käyttäjiltä.
- Jos rivitason suojauksen säännösessä on ristiriita sen määritetyn taulukon kanssa, kysely epäonnistuu eikä rivejä palauteta. Jos esimerkiksi RLS-sääntö viittaa sarakkeeseen, joka ei ole osa taulukkoa.
- RLS-taulukoiden kyselyt epäonnistuvat, ja käyttäjä on osa kahta eri roolia, ja toisella rooleista on saraketason suojaus (CLS).
- RLS-sääntöjä voidaan pakottaa vain objekteille, jotka ovat Delta-parquet-taulukoita.
- RLS-säännöt, joita käytetään muissa kuin Delta-taulukon objekteissa, estävät sen sijaan pääsyn koko taulukkoon roolin jäseniltä.
- Taulukon käyttö saattaa olla estetty, jos RLS-lauseke sisältää syntaksivirheitä, jotka estävät sen arvioinnin.
Rivitason suojaussääntöjen määrittäminen
Voit määrittää rivitason suojaussääntöjä minkä tahansa OneLake-käyttöoikeusroolin osana, joka myöntää oikeuden taulukon tietoihin Delta-parquet-muodossa. Rivit ovat vain taulukkomuotoisiin tietoihin liittyvä käsite, joten RLS-määrityksiä ei sallita muille kuin taulukoiden kansioille tai jäsentämättömille tiedoille.
RLS-säännöt käyttävät SQL-syntaksia määrittämään rivit, jotka käyttäjä voi nähdä. Tämä syntaksi on SQL SELECT -lausekkeen muodossa ja RLS-säännöt on määritetty WHERE-lauseessa. RLS-säännöt tukevat vain SQL-kielen alijoukkoa, joka on määritetty syntaksisäännöissä . Jos kyselyt sisältävät virheellisen RLS-syntaksin tai RLS-syntaksin, joka ei vastaa pohjana olevaa taulukkoa, käyttäjille ei näytetä rivejä tai kyselyvirheitä SQL-analytiikan päätepisteessä.
Parhaana käytäntönä on välttää epämääräisten tai liian monimutkaisten rivitason suojauksen lausekkeiden käyttöä. Vahvasti kirjoitetut lausekkeet, joissa on kokonaisluku- tai merkkijonohaut "="-merkillä, ovat turvallisimpia ja helpoimmin ymmärrettäviä.
Määritä RLS-säännöt seuraavien vaiheiden avulla:
Siirry Lakehouseen ja valitse Hallitse OneLaken suojausta (esikatselu).
Valitse aiemmin luotu rooli, jolle haluat määrittää taulukon tai kansion suojauksen, tai luo uusi rooli valitsemalla Uusi.
Valitse roolin tietosivulla enemmän vaihtoehtoja (...) sen taulukon vieristä, jolle haluat määrittää rivitason suojauksen, ja valitse sitten Rivin suojaus (esikatselu).
Kirjoita SQL-lauseke sen määrittämiseksi, mitä rivejä haluat käyttäjien näkevän koodieditorissa. Katso ohjeet Syntax rules -osiosta.
Vahvista rivin suojaussäännöt valitsemalla Tallenna.
OneLake-suojauksen ottaminen käyttöön SQL-analytiikan päätepistettä varten
Ennen kuin voit käyttää OneLake-suojausta SQL-analytiikan päätepisteessä, sinun on otettava sen käyttäjän käyttäjätietojen tila käyttöön. Äskettäin luodut SQL-analytiikan päätepisteet ovat oletusarvoisesti käyttäjän käyttäjätietotilassa, joten näitä vaiheita on noudatettava aiemmin luoduissa SQL-analytiikan päätepisteissä.
Muistiinpano
Käyttäjän käyttäjätietotilaan vaihtaminen täytyy suorittaa vain kerran SQL-analytiikan päätepistettä kohden. Päätepisteet, joita ei vaihdeta käyttäjän käyttäjätietotilaan, käyttävät edelleen delegoituja käyttäjätietoja käyttöoikeuksien arvioimiseen.
Siirry SQL-analytiikan päätepisteeseen.
Valitse SQL-analytiikan päätepistekokemuksen yläreunan valintanauhasta Suojaus-välilehti .
Valitse Käyttäjän käyttäjätiedotOneLake-käyttötilassa.
Valitse kehotteessa Kyllä, käytä käyttäjän käyttäjätietoja.
SQL-analytiikan päätepiste on nyt valmis käytettäväksi OneLake-suojauksen kanssa.
Syntaksisäännöt
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}
Esimerkki:
SELECT * FROM Sales WHERE Amount>'50000' AND State='CA'
Rivitason suojaussäännön merkkien enimmäismäärä on 1 000.
Tuetut operaattorit
Rivitason suojaussäännöt tukevat seuraavaa operaattoreiden ja avainsanojen luetteloa:
| Operaattori | Kuvaus |
|---|---|
| = (yhtä suuri kuin) | 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 kuin 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. |
| EI | Antaa tulokseksi true, jos jokin arviointiarvo ei ole samaa tietotyyppiä tai ei ole tarkka vastaavuus sarakkeen arvolle. |
| JA | Yhdistää edellisen lausekkeen ja sitä seuraavan lausekkeen käyttämällä totuusarvo-JA-toimintoa. Molempien lausekkeiden on totettava, jotta koko predikaatti on tosi. |
| TAI | Yhdistää edellisen lausekkeen ja sitä seuraavan lausekkeen käyttämällä totuusarvo OR-toimintoa. Yhden väittämän on oltava tosi, jotta koko predikaatti on tosi. |
| TOSI | Totuusarvolauseke tosi. |
| VÄÄRÄ | Epätosi-ehtolauseke. |
| TYHJÄ | Tyhjä tietotyyppi, jota voidaan käyttää IS-operaattorin kanssa. Esimerkki: row IS BLANK. |
| TYHJÄ | Tyhjäarvoinen tietotyyppi, jota voidaan käyttää IS-operaattorin kanssa. Esimerkki: row IS NULL. |
Yhdistä rivi- ja saraketason suojaus
Rivitason ja saraketason suojausta voidaan käyttää yhdessä rajoittamaan käyttäjän pääsyä taulukkoon. Näitä kahta käytäntöä on kuitenkin otettava käyttöön käyttäen yksittäistä OneLake-käyttöoikeusroolia. Tässä skenaariossa tietojen käyttö on rajoitettu yhteen rooliin määritettyjen sääntöjen mukaan.
OneLake-suojaus ei tue kahden tai useamman roolin yhdistelmiä, joissa toinen sisältää RLS-sääntöjä ja toinen CLS-sääntöjä. Käyttäjät, jotka yrittävät käyttää taulukoita, jotka ovat osa rooliyhdistelmää, jota ei tueta, saavat kyselyvirheitä.