sys.sp_helprotect (Transact-SQL)

Gäller för:SQL Server

Returnerar en rapport som innehåller information om användarbehörigheter för ett objekt, eller statement-behörigheter, i den aktuella databasen.

Important

sp_helprotectreturnerar inte information om securables som introducerades i SQL Server 2005 (9.x) och senare versioner. Använd sys.database_permissions och sys.fn_builtin_permissions istället.

Listar inte behörigheter som alltid tilldelas de fasta serverrollerna eller databasrollerna. Inkluderar inte inloggningar eller användare som får behörigheter baserat på sitt medlemskap i en roll.

Transact-SQL syntaxkonventioner

Syntax

sys.sp_helprotect
    [ [ @name = ] N'name' ]
    [ , [ @username = ] N'username' ]
    [ , [ @grantorname = ] N'grantorname' ]
    [ , [ @permissionarea = ] 'permissionarea' ]
[ ; ]

Arguments

[ @name = ] N'namn'

Namnet på objektet i den aktuella databasen, eller ett uttalande, är behörigheterna att rapportera. @name är nvarchar(776), med standardvärdet , NULLvilket returnerar alla objekt- och satsbehörigheter. Om värdet är ett objekt (tabell, vy, lagrad procedur eller utökad lagrad procedur) måste det vara ett giltigt objekt i den aktuella databasen. Objektnamnet kan innehålla en ägarkvalificering i formen <owner>.<object>.

Om @name är ett påstående kan det vara ett CREATE påstående.

[ @username = ] N'användarnamn'

Namnet på den huvudperson för vilken behörigheter återlämnas. @username är sysname, med standardvärdet , NULLvilket returnerar alla principaler i den aktuella databasen. @username måste finnas i den aktuella databasen.

[ @grantorname = ] N'grantorname'

Namnet på rektorn som gav tillstånd. @grantorname är sysname, med standardvärdet , NULLvilket returnerar all information för behörigheter beviljade av någon principal i databasen.

[ @permissionarea = ] 'permissionarea'

En teckensträng som anger om objektbehörigheter (teckensträng o), satsbehörigheter (teckensträng s) eller båda (o s) ska visas. @permissionarea är varchar(10), med standardvärdet .o s @permissionarea kan vara vilken kombination som helst av o och s, med eller utan kommatecken eller mellanrum mellan o och s.

Returnera kodvärden

0 (lyckades) eller 1 (fel).

Resultatuppsättning

Kolumnnamn Datatyp Description
Owner sysname Namnet på objektägaren.
Object sysname Namnet på objektet.
Grantee sysname Namnet på den huvudperson som tillstånden gavs.
Grantor sysname Namnet på den huvudperson som gav tillstånd till den angivna mottagaren.
ProtectType nvarchar(10) Namn på typen av skydd:

GRANT REVOKE
Action nvarchar(60) Namnet på tillståndet. Giltiga behörighetsuttalanden beror på objektets typ.
Column sysname Typ av tillstånd:

All = Behörighet täcker alla aktuella kolumner i objektet.
New = Behörighet täcker alla nya kolumner som kan ändras (genom att använda satsen ALTER ) på objektet i framtiden.
All+New = Kombinationen av All och New.

Returnerar en punkt om typen av behörighet inte gäller för kolumner.

Remarks

Alla parametrar i följande procedur är valfria. Om den körs utan parametrar sp_helprotect visas alla behörigheter som beviljas eller nekas i den aktuella databasen.

Om några men inte alla parametrar är specificerade, använd namngivna parametrar för att identifiera den specifika parametern, eller NULL som en platshållare. Till exempel, för att rapportera alla behörigheter för givarens databasägare (dbo), kör följande skript:

EXECUTE sp_helprotect NULL, NULL, dbo;

Eller

EXECUTE sp_helprotect @grantorname = 'dbo';

Utdatarapporten sorteras efter behörighetskategori, ägare, objekt, mottagare, givare, skyddstyp, skyddstyp, åtgärd och kolumnsekventiellt ID.

Permissions

Kräver medlemskap i offentlig roll.

Information som returneras är föremål för begränsningar i åtkomst till metadata. Enheter där huvudmannen inte har tillstånd förekommer inte. För mer information, se inställningar för metadatasynlighet.

Examples

A. Lista behörigheterna för en tabell

Följande exempel listar behörigheterna för tabellen titles .

EXECUTE sp_helprotect 'titles';

B. Lista behörigheterna för en användare

Följande exempel listar alla behörigheter som användaren Judy har i den aktuella databasen.

EXECUTE sp_helprotect NULL, 'Judy';

C. Lista de behörigheter som beviljats av en specifik användare

Följande exempel listar alla behörigheter som beviljats av användaren Judy i den aktuella databasen och används NULL som platshållare för de saknade parametrarna.

EXECUTE sp_helprotect NULL, NULL, 'Judy';

D. Lista endast satsbehörigheterna

Följande exempel listar alla satsbehörigheter i den aktuella databasen och används NULL som platshållare för de saknade parametrarna.

EXECUTE sp_helprotect NULL, NULL, NULL, 's';

e. Listar behörigheter för ett CREATE-sats

Följande exempel listar alla användare som beviljats tillståndet CREATE TABLE .

EXECUTE sp_helprotect @name = 'CREATE TABLE';