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. |
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 eine der folgenden Anweisungen verwendet werden:
CREATE DATABASE
CREATE DEFAULT
CREATE FUNCTION
CREATE PROCEDURE
CREATE RULE
CREATE TABLE
CREATE VIEW
BACKUP DATABASE
BACKUP LOG
[ @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 erteilt hat. grantor ist vom Datentyp sysname und hat den Standardwert NULL, womit alle Informationen zu Berechtigungen zurückgegeben werden, die von einem Prinzipal in der Datenbank erteilt wurden.[ @permissionarea = ] 'type'
Eine Zeichenfolge, die anzeigt, ob Objektberechtigungen (Zeichenfolge o), Anweisungsberechtigungen (Zeichenfolge s) oder beide (os) angezeigt werden sollen. type ist vom Datentyp varchar(10) und hat den Standardwert os. type kann eine beliebige Kombination aus o und s sein, mit oder ohne Kommas bzw. Leerzeichen zwischen o und s.
Rückgabecodewerte
0 (Erfolg) oder 1 (Fehler)
Resultsets
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(20) |
Name der Berechtigung:
|
Column |
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. |
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 erteilten 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. Ausschließliches Auflisten 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'