DENY (Berechtigungen für Systemobjekte) (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance
Verweigert Berechtigungen für Systemobjekte wie z. B. gespeicherte Prozeduren, erweiterte gespeicherte Prozeduren, Funktionen und Sichten.
Transact-SQL-Syntaxkonventionen
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.
Bemerkungen
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. Jedes Systemobjekt ist 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.
Achtung
Durch Verweigern von Berechtigungen für Systemobjekte werden Fehler in abhängigen Anwendungen verursacht. SQL Server Management Studio verwendet Katalogsichten und funktioniert möglicherweise nicht wie erwartet, wenn Sie die Standardberechtigungen für Katalogsichten ändern.
Das Verweigern von Berechtigungen für Trigger und in Spalten von Systemobjekten wird nicht unterstützt.
Berechtigungen für Systemobjekte werden bei Upgrades von SQL Server beibehalten.
Systemobjekte werden in der sys.system_objects -Katalogsicht angezeigt. 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
Weitere Informationen
Transact-SQL-Syntaxkonventionen
sys.database_permissions (Transact-SQL)
GRANT (Berechtigungen für Systemobjekte) (Transact-SQL)
REVOKE (Berechtigungen für Systemobjekte) (Transact-SQL)