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.

Wichtiger HinweisWichtig

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.

Themenlink (Symbol)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 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:

  • REFERENCES

  • SELECT

  • INSERT

  • DELETE

  • UPDATE

  • CREATE TABLE

  • CREATE DATABASE

  • CREATE FUNCTION

  • CREATE RULE

  • CREATE VIEW

  • CREATE PROCEDURE

  • EXECUTE

  • BACKUP DATABASE

  • CREATE DEFAULT

  • BACKUP LOG

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'