Freigeben über


Verweigern von Systemobjektberechtigungen (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankVerwaltete Azure SQL-InstanzSQL-Datenbank in Microsoft Fabric

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

Arguments

[ System. ]

Der sys Qualifizierer ist nur erforderlich, wenn Sie auf Katalogansichten und dynamische Verwaltungsansichten verweisen.

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.

Remarks

Diese Anweisung kann verwendet werden, um Berechtigungen für bestimmte gespeicherte Prozeduren, erweiterte gespeicherte Prozeduren, Tabellenwertfunktionen, skalare Funktionen, Ansichten, Katalogansichten, Kompatibilitätsansichten, Ansichten, INFORMATION_SCHEMA Ansichten, dynamische Verwaltungsansichten und Systemtabellen zu verweigern, die von SQL Server installiert werden. Jedes dieser Systemobjekte ist als eindeutiger Datensatz in der Ressourcendatenbank (mssqlsystemresource) vorhanden. Die Ressourcendatenbank ist schreibgeschützt. Eine Verknüpfung mit dem Objekt wird als 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 Sie Katalogansichten und dynamische Verwaltungsansichten angeben.

Caution

Das Verweigern von Berechtigungen für Systemobjekte führt dazu, dass Anwendungen, die von ihnen abhängen, fehlschlagen. SQL Server Management Studio verwendet Katalogansichten und funktioniert möglicherweise nicht wie erwartet, wenn Sie die Standardberechtigungen für Katalogansichten ändern.

Das Verweigern von Berechtigungen für Trigger und spalten von Systemobjekten wird nicht unterstützt.

Berechtigungen für Systemobjekte werden während SQL Server-Upgrades beibehalten.

Systemobjekte werden in der sys.system_objects -Katalogsicht angezeigt. Die Berechtigungen für Systemobjekte sind in der sys.database_permissions Katalogansicht in der master Datenbank sichtbar.

Die folgende Abfrage gibt Informationen zu Berechtigungen für Systemobjekte zurück:

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

Erfordert die CONTROL SERVER-Berechtigung.

Examples

Im folgenden Beispiel wird die EXECUTE Berechtigung xp_cmdshell für öffentliche Benutzer verweigert.

DENY EXECUTE ON sys.xp_cmdshell TO PUBLIC;
GO