sp_helprotect (Transact-SQL)
Gibt einen Bericht mit Informationen zu den Benutzerberechtigungen für ein Objekt oder zu Anweisungsberechtigungen in der aktuellen Datenbank zurück.
Wichtig
sp_helprotect gibt keine Informationen zu sicherungsfähigen Elementen zurück, die in SQL Server 2005 eingeführt wurden.Verwenden Sie stattdessen sys.database_permissions und fn_builtin_permissions.
Berechtigungen, die immer festen Serverrollen oder Datenbankrollen zugewiesen sind, werden nicht aufgeführt. Anmeldenamen oder Benutzer, die Berechtigungen auf Grundlage ihrer Rollenmitgliedschaft erhalten, sind nicht enthalten.
Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version). |
Transact-SQL-Syntaxkonventionen
Syntax
sp_helprotect [ [ @name = ] 'object_statement' ]
[ , [ @username = ] 'security_account' ]
[ , [ @grantorname = ] 'grantor' ]
[ , [ @permissionarea = ] 'type' ]
Argumente
[ @name = ] 'object_statement'
Der Name des Objekts in der aktuellen Datenbank oder der Name einer Anweisung mit den auszugebenden Berechtigungen. object_statement ist vom Datentyp nvarchar(776) und hat den Standardwert NULL, womit alle Objekt- und Anweisungsberechtigungen zurückgegeben werden. 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 Format owner**.**object enthalten.Falls object_statement eine Anweisung ist, kann es eine CREATE-Anweisung sein.
[ @username = ] 'security_account'
Der Name des Prinzipals, für den Berechtigungen zurückgegeben werden. security_account ist vom Datentyp sysname und hat den Standardwert NULL, womit alle Prinzipale in der aktuellen Datenbank zurückgegeben werden. security_account muss in der aktuellen Datenbank vorhanden sein.[ @grantorname = ] 'grantor'
Der Name des Prinzipals, der die Berechtigungen gewährt hat. grantor ist vom Datentyp sysname und hat den Standardwert NULL, womit alle Informationen für Berechtigungen zurückgegeben werden, die von jedem Prinzipal in der Datenbank gewährt wurden.[ @permissionarea = ] 'type'
Eine Zeichenfolge, die angibt, ob Objektberechtigungen (Zeichenfolge o), Anweisungsberechtigungen (Zeichenfolge s) oder beide Arten von Berechtigungen (o s) angezeigt werden. type ist vom Datentyp varchar(10). Der Standardwert ist o s. type kann eine beliebige Kombination von o und s sein, mit oder ohne Komma oder Leerzeichen zwischen o und s.
Rückgabecodewerte
0 (Erfolg) oder 1 (Fehler)
Resultsets
Spaltenname |
Datentyp |
Beschreibung |
---|---|---|
Besitzer |
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 |
Aktion |
nvarchar(60) |
Der Name der Berechtigung. Gültige Berechtigungsanweisungen richten sich nach dem Objekttyp. |
Spalte |
sysname |
Berechtigungstyp: All = Berechtigung gilt für alle aktuellen Spalten des Objekts. New = Berechtigung gilt für alle neuen Spalten, die später (mithilfe der ALTER-Anweisung) für das Objekt geändert werden. All+New = Kombination aus 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 sp_helprotect ohne Parameter ausführen, werden alle Berechtigungen angezeigt, die in der aktuellen Datenbank erteilt oder verweigert wurden.
Wenn einige, aber nicht alle Parameter angegeben werden, verwenden Sie benannte Parameter zum Identifizieren des entsprechenden Parameters oder aber NULL als Platzhalter. Führen Sie z. B. folgende Zeile aus, um alle Berechtigungen für den Datenbankbesitzer (dbo) auszugeben, der der Berechtigende (GRANTOR) ist:
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 Berechtigungen besitzt, werden nicht angezeigt. Weitere Informationen finden Sie unter Konfigurieren der Sichtbarkeit von Metadaten.
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 gewährten Berechtigungen
Im folgenden Beispiel werden alle Berechtigungen aufgelistet, die von Benutzer Judy in der aktuellen Datenbank erteilt wurden. Dabei wird NULL als Platzhalter für die fehlenden Parameter verwendet.
EXEC sp_helprotect NULL, NULL, 'Judy';
D.Auflisten nur der Anweisungsberechtigungen
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 aufgelistet, denen die CREATE TABLE-Berechtigung erteilt wurde.
EXEC sp_helprotect @name = 'CREATE TABLE';