DENY (Berechtigungen für Systemobjekte) (Transact-SQL)
Verweigert Berechtigungen für Systemobjekte wie z. B. gespeicherte Prozeduren, erweiterte gespeicherte Prozeduren, Funktionen und Sichten.
Syntax
DENY { SELECT | EXECUTE } ON [ sys.]system_object TO principal
Argumente
[ sys.]
Der sys-Qualifizierer ist nur erforderlich, wenn auf Katalogsichten und dynamische Verwaltungssichten verwiesen wird.system_object
Gibt das Objekt an, für das die Berechtigung verweigert wird.principal
Gibt den Prinzipal an, für den die Berechtigung aufgehoben wird.
Hinweise
Mit dieser Anweisung können Berechtigungen für bestimmte gespeicherte Prozeduren, erweiterte gespeicherte Prozeduren, Tabellenwertfunktionen, Skalarfunktionen, Sichten, Katalogsichten, Kompatibilitätssichten, INFORMATION_SCHEMA-Sichten, dynamische Verwaltungssichten und Systemtabellen verweigert werden, die von SQL Server installiert wurden. Alle Systemobjekte sind als eindeutiger Datensatz in der Ressourcendatenbank (mssqlsystemresource) vorhanden. Die Ressourcendatenbank ist schreibgeschützt. Ein Link zum Objekt wird in einem Datensatz im sys-Schema jeder Datenbank verfügbar gemacht.
Die Standardnamensauflösung löst nicht qualifizierte Prozedurnamen für die Ressourcendatenbank auf. Daher ist der sys-Qualifizierer nur erforderlich, wenn Katalogsichten und dynamische Verwaltungssichten angegeben werden.
Vorsicht |
---|
Wenn Berechtigungen für Systemobjekte verweigert werden, erzeugen Anwendungen, die von diesen Systemobjekten abhängig sind, einen Fehler. Wenn die Standardberechtigungen in Katalogsichten geändert werden, kann SQL Server Management Studio, das Katalogsichten verwendet, ggf. nicht wie erwartet ausgeführt werden. |
Das Verweigern von Berechtigungen für Trigger und in Spalten von Systemobjekten wird nicht unterstützt.
Berechtigungen für Systemobjekte werden bei Updates von SQL Server beibehalten.
Systemobjekte werden in der sys.system_objects-Katalogsicht sichtbar. Die Berechtigungen für Systemobjekte werden in der sys.database_permissions-Katalogsicht in der master-Datenbank angezeigt.
Die folgende Abfrage gibt Informationen zu Berechtigungen für Systemobjekte zurück:
SELECT * FROM master.sys.database_permissions AS dp
JOIN sys.system_objects AS so
ON dp.major_id = so.object_id
WHERE dp.class = 1 AND so.parent_object_id = 0 ;
GO
Berechtigungen
Erfordert die CONTROL SERVER-Berechtigung.
Beispiele
Im folgenden Beispiel wird die EXECUTE-Berechtigung für xp_cmdshell für die public-Rolle verweigert.
DENY EXECUTE ON sys.xp_cmdshell TO public;
GO