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