Sorszintű biztonsági szintaxisreferencia

Ez a cikk dokumentálja a sorszintű biztonsági (RLS) szabályok meghatározásának szintaxisát a OneLake biztonságban. Az RLS szabály alkalmazásához táblázatra lásd: Létrehozni és kezelni OneLake biztonsági szerepeket.

Az RLS-szabályok SQL-szintaxissal határozzák meg a felhasználók által látható sorokat. A szintaxis SQL SELECT állítás formájában jelenik meg, az RLS szabályokat a záradékban WHERE definiálva. Az RLS szabályai csak az ebben a cikkben meghatározott SQL részhalmazt támogatják. Ha az RLS szintaxisa értelen vagy nem egyezik meg az alapul szolgáló táblával rendelkező RLS szintaxissal rendelkező lekérdezések, nem mutatnak sorokat a felhasználóknak, vagy lekérdezési hibákat okoznak az SQL analitikai végponton.

Amikor RLS kifejezéseket írsz, tartsd szem előtt a következő legjobb gyakorlatokat:

  • Kerüld a homályos vagy túlzottan összetett RLS kifejezéseket.
  • Az erősen típusított kifejezések, amelyek egész számokat vagy string lekérdezéseket használnak, és "=" -t használnak, a legbiztonságosabbak és legkönnyebben érthetőek.
  • Egész számoszlopokat használj a rendezéshez, valamint a nagyobb-mint vagy kisebb műveletekhez.
  • Kerüld a stringekvivalenciákat, ha nem ismered a bemeneti adatok formátumát, különösen a Unicode karakterek vagy az akcentusérzékenység esetén.

A sorszintű biztonság a láncsor-adatokat nagybetű-érzékenynek értékeli, a rendezéshez és összehasonlításhoz a következő összeállítást alkalmazva: Latin1_General_100_CI_AS_KS_WS_SC_UTF8.

Syntax

A sorszintű biztonsági szabályban szereplő karakterek maximális száma 1000.

Az összes sorszintű biztonsági szabály a következő formában van:

SELECT * FROM {schema_name}.{table_name} WHERE {column_level_boolean_1}{column_level_boolean_2}...{column_level_boolean_N}

Például:

SELECT * FROM Sales WHERE Amount > 50000 AND State='CA'
Placeholder Description
{schema_name} A {table_name} rendszert tartalmazó séma neve. Ha az elem támogatja a sémákat, akkor be kell illesztened a {schema_name}-t.
{table_name} Az a tábla neve, amelyre az RLS predikátum vonatkozik. Ennek az értéknek pontosan egyeznie kell a tábla nevével, különben az RLS nem mutat sorokat. Használjon négyzet [] zárójelet a táblanevek speciális karakterekkel való kikerüléséhez. Például: SELECT * FROM [dbo].[Secret.Table].
{column_level_boolean} Logikai utasítás, amely a következő összetevőket tartalmazza:

* Oszlop neve: Egy oszlop neve a {table_name} betűben, ahogy az a Delta napló sémájában szerepel. Az oszlopneveket formázhatod {column_name} vagy {table_name} formátumra. {column_name}.
* Operátor: Az egyik támogatott operátor , amely az oszlop nevét és értékét egy Boolean értékre értékeli.
* Érték: Egy statikus érték vagy értékhalmaz, amelyet értékelni lehet.

Több logikai utasítást is elválaszthat egymástól az ÉS vagy a VAGY használatával.

Támogatott operátorok

A sorszintű biztonsági szabályok a következő operátorokat és kulcsszavakat támogatják:

Operator Description
= (egyenlő) Igaznak értékelődik, ha a két érték azonos adattípusú, és teljesen megegyezik.
<> (nem egyenlő) Igaz értéket ad vissza, ha a két érték nem azonos adattípus, és nem pontos egyezés.
> (nagyobb, mint) Igaz értéket ad vissza, ha az oszlop értéke nagyobb, mint a kiértékelési érték. A sztringértékek esetében ez az operátor bitenkénti összehasonlítást használ annak megállapításához, hogy az egyik sztring nagyobb-e a másiknál.
>= (nagyobb vagy egyenlő) Igaz értéket ad vissza, ha az oszlop értéke nagyobb vagy egyenlő a kiértékelési értékkel. A sztringértékek esetében ez az operátor bitenkénti összehasonlítást használ annak megállapításához, hogy az egyik sztring nagyobb-e, mint a másik.
< (kisebb) Igaz értéket ad vissza, ha az oszlop értéke kisebb, mint a kiértékelési érték. A sztringértékek esetében ez az operátor bitenkénti összehasonlítást használ annak megállapításához, hogy az egyik sztring kisebb-e a másiknál.
<= (kisebb vagy egyenlő) Igaz értéket ad vissza, ha az oszlop értéke kisebb vagy egyenlő a kiértékelési értékkel. A sztringértékek esetében ez az operátor bitenkénti összehasonlítást használ annak megállapításához, hogy az egyik sztring kisebb-e, mint a másik.
IN Igaz értéket ad vissza, ha a kiértékelési értékek bármelyike megegyezik az adattípussal, és pontosan egyezik az oszlop értékével.
NOT Igaz értéket ad vissza, ha a kiértékelési értékek nem azonos adattípusúak, vagy nem egyeznek meg pontosan az oszlopértékekkel.
AND Egyesíti az előző és a későbbi állítást egy Boolean AND művelet segítségével. Mindkét állításnak igaznak kell lennie ahhoz, hogy a teljes predikátum igaz legyen.
OR Az előző és a következő utasítást egy Boolean OR művelettel kombinálja. Az egyik állításnak igaznak kell lennie ahhoz, hogy a teljes predikátum igaz legyen.
TRUE A "true" értéket jelentő logikai kifejezés.
FALSE A "hamis" logikai kifejezés.
BLANK Az üres adattípus, amit az IS operátorral használhatsz. Például: row IS BLANK.
NULL A null adattípus, amit az IS operátorral használhatsz. Például: row IS NULL.