sp_helprotect (Transact-SQL)

Gilt für:SQL Server

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 (9.x) 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.

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 eine -Anweisung, das über die Berechtigungen zum Melden verfügt. object_statement ist nvarchar(776) mit dem Standardwert 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 Formularbesitzer enthalten.-Objekt.

Wenn object_statement eine Anweisung ist, kann es sich um eine CREATE-Anweisung handeln.

[ @username = ] 'security_account' Der Name des Prinzipals, für den Berechtigungen zurückgegeben werden. security_account ist sysname mit dem Standardwert NULL, der alle Prinzipale in der aktuellen Datenbank zurückgibt. security_account muss in der aktuellen Datenbank vorhanden sein.

[ @grantorname = ] 'grantor' Der Name des Prinzipals, der Berechtigungen erteilt hat. Grantor ist sysname mit dem Standardwert NULL, der alle Informationen für Berechtigungen zurückgibt, die von einem beliebigen Prinzipal in der Datenbank gewährt werden.

[ @permissionarea = ] 'type' Ist eine Zeichenfolge, die angibt, ob Objektberechtigungen (Zeichenfolge o), Anweisungsberechtigungen (Zeichenfolgen) oder beides (os) angezeigt werden sollen. type is varchar(10), with a default of os. Typ kann eine beliebige Kombination von o und s sein, mit oder ohne Kommas oder Leerzeichen zwischen o und s.

Rückgabecodewerte

„0“ (erfolgreich) oder „1“ (fehlerhaft)

Resultsets

Spaltenname Datentyp BESCHREIBUNG
Besitzer sysname Name des Objektbesitzers.
Object sysname Name des Objekts.
Empfänger 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) 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.

Bemerkungen

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 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 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';   

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';  

Weitere Informationen

Gespeicherte Sicherheitsprozeduren (Transact-SQL)
DENY (Transact-SQL)
GRANT (Transact-SQL)
REVOKE (Transact-SQL)
Gespeicherte Systemprozeduren (Transact-SQL)