sp_helprotect (Transact-SQL)
Gilt für: SQL Server
Gibt einen Bericht zurück, der Informationen zu Benutzerberechtigungen für ein Objekt oder anweisungsberechtigungen in der aktuellen Datenbank enthält.
Wichtig
sp_helprotect
gibt keine Informationen zu sicherungsfähigen Daten zurück, die in SQL Server 2005 (9.x) und höheren Versionen eingeführt wurden. Verwenden Sie stattdessen sys.database_permissions und sys.fn_builtin_permissions.
Listet keine Berechtigungen auf, die immer den festen Serverrollen oder festen Datenbankrollen zugewiesen sind. Enthält keine Anmeldungen oder Benutzer, die Berechtigungen basierend auf ihrer Mitgliedschaft in einer Rolle erhalten.
Transact-SQL-Syntaxkonventionen
Syntax
sp_helprotect
[ [ @name = ] N'name' ]
[ , [ @username = ] N'username' ]
[ , [ @grantorname = ] N'grantorname' ]
[ , [ @permissionarea = ] 'permissionarea' ]
[ ; ]
Argumente
[ @name = ] N'name'
Der Name des Objekts in der aktuellen Datenbank oder einer Anweisung, die die Berechtigungen zum Melden darstellt. @name ist nvarchar(776), mit einem Standardwert von NULL
, der alle Objekt- und Anweisungsberechtigungen zurückgibt. Handelt es sich um ein Objekt (Tabelle, Sicht, gespeicherte Prozedur oder erweiterte gespeicherte Prozedur), muss dieses ein gültiges Objekt in der aktuellen Datenbank sein. Der Objektname kann einen Besitzerqualifizierer im Formular <owner>.<object>
enthalten.
Wenn @name eine Anweisung ist, kann es sich um eine CREATE
Anweisung handeln.
[ @username = ] N'Benutzername'
Der Name des Prinzipals, für den Berechtigungen zurückgegeben werden. @username ist "sysname" mit dem Standardwert "NULL
, der alle Prinzipale in der aktuellen Datenbank zurückgibt. @username muss in der aktuellen Datenbank vorhanden sein.
[ @grantorname = ] N'grantorname'
Der Name des Prinzipals, der Berechtigungen erteilt hat. @grantorname ist "sysname" mit dem Standardwert "NULL
, der alle Informationen zu Berechtigungen zurückgibt, die von jedem Prinzipal in der Datenbank erteilt werden.
[ @permissionarea = ] 'permissionarea'
Eine Zeichenfolge, die angibt, ob Objektberechtigungen (Zeichenfolge o
), Anweisungsberechtigungen (Zeichenfolge s
) oder beides (o s
) angezeigt werden sollen. @permissionarea ist varchar(10) mit einem Standardwert von o s
. @permissionarea kann eine beliebige Kombination aus o
und s
, mit oder ohne Kommas oder Leerzeichen zwischen o
und .s
Rückgabecodewerte
0
(erfolgreich) oder 1
Fehler.
Resultset
Spaltenname | Datentyp | Beschreibung |
---|---|---|
Owner |
sysname | Name des Objektbesitzers. |
Object |
sysname | Name des Objekts. |
Grantee |
sysname | Name des Prinzipals, dem Berechtigungen erteilt wurden. |
Grantor |
sysname | Name des Prinzipals, der dem angegebenen Empfänger (Grantee) Berechtigungen erteilt hat. |
ProtectType |
nvarchar(10) | Name des Schutztyps:GRANT REVOKE |
Action |
nvarchar(60) | Name der Berechtigung. Gültige Berechtigungsanweisungen richten sich nach dem Objekttyp. |
Column |
sysname | Berechtigungstyp:All = Berechtigung deckt alle aktuellen Spalten des Objekts ab.New = Berechtigung deckt alle neuen Spalten ab, die (mithilfe der ALTER Anweisung) für das Objekt in Zukunft geändert werden können.All+New = Kombination von All und New .Gibt einen Punkt zurück, wenn der Berechtigungstyp nicht für Spalten gilt. |
Hinweise
Alle Parameter in der folgenden Prozedur sind optional. Wenn sie ohne Parameter ausgeführt wird, werden alle Berechtigungen angezeigt, sp_helprotect
die in der aktuellen Datenbank erteilt oder verweigert werden.
Wenn einige, aber nicht alle Parameter angegeben werden, verwenden Sie benannte Parameter zum Identifizieren des entsprechenden Parameters oder aber NULL
als Platzhalter. Um beispielsweise alle Berechtigungen für den Besitzer der Grantor-Datenbank (dbo
) zu melden, führen Sie das folgende Skript aus:
EXEC sp_helprotect NULL, NULL, dbo;
Oder
EXEC sp_helprotect @grantorname = 'dbo';
Der Ausgabebericht wird nach Berechtigungskategorie, Besitzer, Objekt, Empfänger (Grantee), Berechtigendem (Grantor), Schutztypkategorie, Schutztyp, Aktion und spaltensequenzieller ID sortiert.
Berechtigungen
Erfordert die Mitgliedschaft in der public -Rolle.
Die zurückgegebenen Informationen unterliegen den Einschränkungen, die für den Zugriff auf Metadaten gelten. Entitäten, für die der Prinzipal keine Berechtigung besitzt, werden nicht angezeigt. Weitere Informationen finden Sie unter Metadata Visibility Configuration.
Beispiele
A. Auflisten der Berechtigungen für eine Tabelle
Im folgenden Beispiel werden die Berechtigungen für die titles
-Tabelle aufgelistet.
EXEC sp_helprotect 'titles';
B. Auflisten der Berechtigungen für einen Benutzer
Im folgenden Beispiel werden alle Berechtigungen des Benutzers Judy
für die aktuelle Datenbank aufgelistet.
EXEC sp_helprotect NULL, 'Judy';
C. Auflisten der von einem bestimmten Benutzer erteilten Berechtigungen
Im folgenden Beispiel werden alle Berechtigungen aufgelistet, die vom Benutzer Judy
in der aktuellen Datenbank erteilt wurden, und wird als Platzhalter für die fehlenden Parameter verwendet NULL
.
EXEC sp_helprotect NULL, NULL, 'Judy';
D: Nur die Berechtigungen für die Anweisung auflisten
Im folgenden Beispiel werden alle Anweisungsberechtigungen in der aktuellen Datenbank aufgelistet. Dabei wird NULL
als Platzhalter für die fehlenden Parameter verwendet.
EXEC sp_helprotect NULL, NULL, NULL, 's';
e. Auflisten der Berechtigungen für eine CREATE-Anweisung
Im folgenden Beispiel werden alle Benutzer aufgeführt, denen die CREATE TABLE
Berechtigung erteilt wurde.
EXEC sp_helprotect @name = 'CREATE TABLE';