Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Biztonsági szabályzatot hoz létre szintű biztonsághoz az SQL Database Engine.
A sorszintű biztonság a Fabric Data Warehouse más SQL-Database Engine termékekhez hasonlóan működik. Az Fabric Data Warehouse vagy az SQL Analytics-végpont sorszintű biztonságával kapcsolatos további információkért és példákért lásd: Az adatraktározási Fabric.
Transact-SQL szintaxis konvenciók
Syntax
CREATE SECURITY POLICY [schema_name. ] security_policy_name
{ ADD [ FILTER | BLOCK ] } PREDICATE tvf_schema_name.security_predicate_function_name
( { column_name | expression } [ , ...n] ) ON table_schema_name. table_name
[ <block_dml_operation> ] , [ , ...n]
[ WITH ( STATE = { ON | OFF } [,] [ SCHEMABINDING = { ON | OFF } ] ) ]
[ NOT FOR REPLICATION ]
[;]
<block_dml_operation>
[ { AFTER { INSERT | UPDATE } }
| { BEFORE { UPDATE | DELETE } } ]
Arguments
security_policy_name
A biztonsági szabályzat neve. A biztonsági házirendek neveinek az azonosítókra vonatkozó szabályokat kell követnie, és egyedinek kell lenniük az adatbázisban és a sémában.
schema_name
Annak a sémának a neve, amelyhez a biztonsági szabályzat tartozik. schema_name sémakötés miatt szükséges.
[ FILTER | BLOKK ]
A céltáblához kötéshez használt függvény biztonsági predikátumának típusa.
-
FILTERpredikátumok csendesen szűrik az olvasási műveletekhez elérhető sorokat. -
BLOCKpredikátumok kifejezetten blokkolják az írási műveleteket, amelyek megsértik a predikátumfüggvényt.
tvf_schema_name.security_predicate_function_name
A beágyazott tábla értékfüggvénye, amelyet predikátumként használunk, és amelyet a céltáblán lévő lekérdezésekkor kényszerítünk ki. Legfeljebb egy biztonsági predikátum határozható meg egy adott DML-művelethez egy adott táblán. A beágyazott tábla értékfüggvényének a SCHEMABINDING beállítással kell létrejönnie.
{ column_name | kifejezés }
A biztonsági predikátumfüggvény paramétereként használt oszlopnév vagy kifejezés. A céltábla bármely oszlopa használható. A kifejezések csak állandókat tartalmazhatnak, amelyek skaláris függvényekben, operátorokban és oszlopokban találhatók a céltáblából. A függvény minden paraméteréhez oszlopnevet vagy kifejezést kell megadni.
table_schema_name.table_name
A céltábla, amelyre a biztonsági predikátumot alkalmazni fogja. Több letiltott biztonsági szabályzat egyetlen táblát célozhat meg egy adott DML-művelethez, de egyszerre csak egy engedélyezhető.
block_dml_operation
Az a DML-művelet, amelyre a blokk predikátumot alkalmazni fogja.
AFTERazt határozza meg, hogy a predikátum a DML-művelet végrehajtása (vagy INSERT) után a sorok értékei alapján lesz kiértékelve.UPDATE
BEFORE azt adja meg, hogy a predikátum kiértékelése a sorok értékein történik a DML-művelet végrehajtása előtt (UPDATE vagy DELETE). Ha nincs megadva művelet, a predikátum minden műveletre érvényes lesz.
[ STATE = { ON | KI } ]
Engedélyezi vagy letiltja, hogy a biztonsági szabályzat kényszerítse a biztonsági predikátumokat a céltáblákra. Ha nincs megadva, a létrehozott biztonsági szabályzat engedélyezve van.
[ SCHEMABINDING = { ON | KI } ]
Azt jelzi, hogy a házirend összes predikátumfüggvényét létre kell-e hozni a SCHEMABINDING beállítással. Alapértelmezés szerint ez a beállítás, ON és minden függvényt létre kell hozni a következővel SCHEMABINDING: .
REPLIKÁCIÓHOZ NEM
Azt jelzi, hogy a biztonsági szabályzat nem hajtható végre, ha egy replikációs ügynök módosítja a célobjektumot. További információ: A triggerek és kényszerek viselkedésének konfigurálása a szinkronizálás során (replikáció Transact-SQL programozás).
[ table_schema_name. ] table_name
A céltábla, amelyre a biztonsági predikátumot alkalmazni fogja. Több letiltott biztonsági szabályzat egyetlen táblát célozhat meg, de egy adott időpontban csak egy engedélyezhető.
Remarks
Ha predikátumfüggvényeket használ memóriaoptimalizált táblákkal, a fordítási SCHEMABINDING tippet fel kell vennie WITH NATIVE_COMPILATION és használnia kell.
A blokk predikátumok kiértékelése a megfelelő DML-művelet végrehajtása után történik. Ezért fennáll a veszélye annak, hogy a READ UNCOMMITTED lekérdezések átmeneti értékeket láthatnak, amelyek vissza lesznek állítva.
Permissions
ALTER ANY SECURITY POLICY A sémához engedélyre és ALTER engedélyre van szükség.
Emellett a következő engedélyekre van szükség minden hozzáadott predikátumhoz:
SELECTésREFERENCESa predikátumként használt függvény engedélyeit.REFERENCESa szabályzathoz kötött céltáblára vonatkozó engedély.REFERENCESaz argumentumként használt céltábla minden oszlopára vonatkozó engedély.
Examples
Az alábbi példák a szintaxis használatát CREATE SECURITY POLICY mutatják be. Egy teljes biztonsági szabályzatra példa: Sorszintű biztonság.
A. Biztonsági szabályzat létrehozása
Az alábbi szintaxis létrehoz egy biztonsági szabályzatot a dbo.Customer tábla szűrő predikátumával, és letiltja a biztonsági szabályzatot.
CREATE SECURITY POLICY [FederatedSecurityPolicy]
ADD FILTER PREDICATE [rls].[fn_securitypredicate]([CustomerId])
ON [dbo].[Customer];
B. Több táblát érintő szabályzat létrehozása
Az alábbi szintaxis három különböző táblán három szűrő predikátumot tartalmazó biztonsági szabályzatot hoz létre, és engedélyezi a biztonsági szabályzatot.
CREATE SECURITY POLICY [FederatedSecurityPolicy]
ADD FILTER PREDICATE [rls].[fn_securitypredicate1]([CustomerId])
ON [dbo].[Customer],
ADD FILTER PREDICATE [rls].[fn_securitypredicate1]([VendorId])
ON [dbo].[ Vendor],
ADD FILTER PREDICATE [rls].[fn_securitypredicate2]([WingId])
ON [dbo].[Patient]
WITH (STATE = ON);
C. Szabályzat létrehozása több típusú biztonsági predikátummal
Szűrő predikátum és blokk predikátum hozzáadása a dbo.Sales táblához.
CREATE SECURITY POLICY rls.SecPol
ADD FILTER PREDICATE rls.tenantAccessPredicate(TenantId) ON dbo.Sales,
ADD BLOCK PREDICATE rls.tenantAccessPredicate(TenantId) ON dbo.Sales AFTER INSERT;