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.
Vonatkozik a következőkre: SQL Server 2016 (13.x) és későbbi verziók
Azure SQL Database
Azure SQL Managed Instance
SQL analytics endpoint in Microsoft Fabric
Warehouse SQL
databasein Microsoft Fabric SQL database in Microsoft Fabric
Módosít egy biztonsági szabályzatot.
Transact-SQL szintaxis konvenciók
Szemantika
ALTER SECURITY POLICY schema_name.security_policy_name
[
{ ADD { FILTER | BLOCK } PREDICATE tvf_schema_name.security_predicate_function_name
( { column_name | arguments } [ , ...n ] ) ON table_schema_name.table_name
[ <block_dml_operation> ] }
| { ALTER { FILTER | BLOCK } PREDICATE tvf_schema_name.new_security_predicate_function_name
( { column_name | arguments } [ , ...n ] ) ON table_schema_name.table_name
[ <block_dml_operation> ] }
| { DROP { FILTER | BLOCK } PREDICATE ON table_schema_name.table_name }
| [ <additional_add_alter_drop_predicate_statements> [ , ...n ] ]
] [ WITH ( STATE = { ON | OFF } ) ]
[ NOT FOR REPLICATION ]
[;]
<block_dml_operation>
[ { AFTER { INSERT | UPDATE } }
| { BEFORE { UPDATE | DELETE } } ]
Érvek
security_policy_name
A biztonsági szabályzat neve. A biztonsági házirendek neveinek meg kell felelniük az azonosítókra vonatkozó szabályoknak, é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ött függvény biztonsági predikátumának típusa.
FILTER predikátumok csendesen szűrik az olvasási műveletekhez elérhető sorokat.
BLOCK prediká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 predikátumként használt beágyazott táblaértékfüggvény, amelyet a céltáblán való lekérdezésekre kényszerít. Legfeljebb egy biztonsági predikátumot definiálhat egy adott DML-művelethez egy adott táblához. Hozza létre a beágyazott tábla értékfüggvényét a SCHEMABINDING beállítással.
{ column_name | argumentumok }
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 predikátumfüggvény argumentumaként. A literálokat, beépítetteket és aritmetikai operátorokat használó kifejezéseket is használhat.
table_schema_name.table_name
A biztonsági predikátum céltáblája. 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 alkalmazott blokk predikátum adott DML-művelete.
AFTER azt adja meg, hogy a predikátum kiértékelése a DML-művelet végrehajtása (INSERT vagy UPDATE) után a sorértékeken történik.
BEFORE megadja, hogy a predikátum kiértékelése a sorértékeken történjen 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.
Az alkalmazott blokk predikátum műveletet nem módosíthatja, mert a művelet a predikátum egyedi azonosítására szolgál. Ehelyett el kell helyeznie a predikátumot, és hozzá kell adnia egy újat az új művelethez.
WITH ( 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.
REPLIKÁCIÓHOZ NEM
Azt jelzi, hogy a biztonsági szabályzatot nem szabad végrehajtani, ha egy replikációs ügynök módosítja a célobjektumot. További információ: Az eseményindítók és a kényszerek viselkedésének szabályozása a szinkronizálás során (replikáció Transact-SQL programozás).
table_schema_name.table_name
Az alkalmazott biztonsági predikátum céltáblája. Több letiltott biztonsági szabályzat egyetlen táblát célozhat meg, de egy adott időpontban csak egy engedélyezhető.
Megjegyzések
Az ALTER SECURITY POLICY utasítás egy tranzakció hatókörébe tartozik. Ha a tranzakciót visszavonják, akkor a nyilatkozatot is visszavonják.
Ha predikátumfüggvényeket használ memóriaoptimalizált táblákkal, a biztonsági szabályzatnak tartalmaznia SCHEMABINDING kell és használnia kell a fordítási WITH NATIVE_COMPILATION tippet. Az SCHEMABINDING argumentum nem módosítható az ALTER utasítással, mert minden predikátumra érvényes. A sémakötés módosításához el kell dobnia és újra létre kell hoznia a biztonsági szabályzatot.
A blokk predikátumok kiértékelése a megfelelő DML-művelet végrehajtása után történik. Ilyen esetben fennáll a veszélye annak, hogy a READ UNCOMMITTED lekérdezések átmeneti értékeket láthatnak, amelyek vissza lesznek állítva.
Engedélyek
A ALTER ANY SECURITY POLICY 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.
Példák
Az alábbi példák a szintaxis használatát ALTER SECURITY POLICY mutatják be. Egy teljes biztonsági szabályzatra példa: Sorszintű biztonság.
Egy. További predikátum hozzáadása szabályzathoz
Az alábbi szintaxis módosít egy biztonsági szabályzatot, és hozzáad egy szűrő predikátumot a mytable táblához.
ALTER SECURITY POLICY pol1
ADD FILTER PREDICATE schema_preds.SecPredicate(column1)
ON myschema.mytable;
B. Meglévő szabályzat engedélyezése
Az alábbi példa az ALTER szintaxist használja egy biztonsági szabályzat engedélyezéséhez.
ALTER SECURITY POLICY pol1 WITH ( STATE = ON );
C. Több predikátum hozzáadása és elvetése
Az alábbi szintaxis módosítja a biztonsági szabályzatot, szűrő predikátumokat ad hozzá a táblákhoz és mytable1 a mytable3 táblákhoz, és eltávolítja a szűrő predikátumát a mytable2 táblából.
ALTER SECURITY POLICY pol1
ADD FILTER PREDICATE schema_preds.SecPredicate1(column1)
ON myschema.mytable1,
DROP FILTER PREDICATE
ON myschema.mytable2,
ADD FILTER PREDICATE schema_preds.SecPredicate2(column2, 1)
ON myschema.mytable3;
D. Tábla predikátumának módosítása
Az alábbi szintaxis a tábla meglévő szűrő predikátumát myschema.mytable függvényként módosítja SecPredicate2 .
ALTER SECURITY POLICY pol1
ALTER FILTER PREDICATE schema_preds.SecPredicate2(column1)
ON myschema.mytable;
E. Blokk predikátumának módosítása
Tábla egy műveletének blokk predikátumfüggvényének módosítása.
ALTER SECURITY POLICY rls.SecPol
ALTER BLOCK PREDICATE rls.tenantAccessPredicate_v2(TenantId)
ON dbo.Sales AFTER INSERT;