Megosztás a következőn keresztül:


DENY rendszerobjektum-engedélyek (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Letiltja a rendszerobjektumokra, például a tárolt eljárásokra, a kiterjesztett tárolt eljárásokra, a függvényekre és a nézetekre vonatkozó engedélyeket.

Transact-SQL szintaxis konvenciók

Syntax

DENY { SELECT | EXECUTE } ON [ sys. ] system_object TO principal

Arguments

[ sys. ]

A sys minősítő csak akkor szükséges, ha katalógusnézetekre és dinamikus felügyeleti nézetekre hivatkozik.

system_object

Azt az objektumot adja meg, amelyen az engedély megtagadva van.

principal

Azt a tagot adja meg, amelytől az engedélyt visszavonják.

Remarks

Ez az utasítás bizonyos tárolt eljárások, kiterjesztett tárolt eljárások, táblaértékű függvények, skaláris függvények, nézetek, katalógusnézetek, kompatibilitási nézetek, INFORMATION_SCHEMA nézetek, dinamikus felügyeleti nézetek és az SQL Server által telepített rendszertáblák engedélyeinek megtagadására használható. Ezek a rendszerobjektumok egyedi rekordként léteznek az erőforrás-adatbázisban (mssqlsystemresource). Az erőforrás-adatbázis írásvédett. Az objektumra mutató hivatkozás minden adatbázis sémájában sys rekordként jelenik meg.

Az alapértelmezett névfeloldás feloldja a nem minősített eljárásneveket az erőforrás-adatbázisban. Ezért a sys minősítő csak akkor szükséges, ha katalógusnézeteket és dinamikus felügyeleti nézeteket ad meg.

Caution

A rendszerobjektumokra vonatkozó engedélyek megtagadása miatt a tőlük függő alkalmazások meghiúsulnak. Az SQL Server Management Studio katalógusnézeteket használ, és előfordulhat, hogy nem a várt módon működik, ha módosítja a katalógusnézetek alapértelmezett engedélyeit.

Az eseményindítókra és a rendszerobjektumok oszlopaira vonatkozó engedélyek megtagadása nem támogatott.

A rendszerobjektumokra vonatkozó engedélyek megmaradnak az SQL Server frissítései során.

A rendszerobjektumok sys.system_objects katalógusnézetben láthatók. A rendszerobjektumokra vonatkozó engedélyek az adatbázis sys.database_permissions katalógusnézetében master láthatók.

A következő lekérdezés a rendszerobjektumok engedélyeiről ad vissza információkat:

SELECT *
FROM master.sys.database_permissions AS dp
     INNER JOIN sys.system_objects AS so
         ON dp.major_id = so.object_id
WHERE dp.class = 1
      AND so.parent_object_id = 0;
GO

Permissions

CONTROL SERVER engedélyre van szükség.

Examples

Az alábbi példa tagadja EXECUTE a xp_cmdshell hozzáférés engedélyezését.

DENY EXECUTE ON sys.xp_cmdshell TO PUBLIC;
GO