sp_helprotect (Transact-SQL)

Restituisce un report con informazioni sulle autorizzazioni utente per un oggetto o sulle autorizzazioni per le istruzioni, nel database corrente.

Nota importanteImportante

sp_helprotect non restituisce informazioni sulle entità a protezione diretta introdotte in SQL Server 2005. A tale scopo, utilizzare invece sys.database_permissions e fn_builtin_permissions.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

sp_helprotect [ [ @name = ] 'object_statement' ] 
     [ , [ @username = ] 'security_account' ] 
     [ , [ @grantorname = ] 'grantor' ] 
     [ , [ @permissionarea = ] 'type' ]

Argomenti

  • [ @name = ] 'object_statement'
    Nome dell'oggetto nel database corrente, o di un'istruzione, a cui sono associate le autorizzazioni di cui si desidera ottenere informazioni. object_statement è di tipo nvarchar(776) e il valore predefinito è NULL, con cui vengono restituite tutte le autorizzazioni per gli oggetti e per le istruzioni. Se il valore è un oggetto, quale una tabella, una vista, una stored procedure o una stored procedure estesa, deve essere un oggetto valido nel database corrente. Il nome dell'oggetto può includere un qualificatore del proprietario nel formato owner**.**object.

    Se object_statement è un'istruzione, i possibili valori sono i seguenti:

    • CREATE DATABASE

    • CREATE DEFAULT

    • CREATE FUNCTION

    • CREATE PROCEDURE

    • CREATE RULE

    • CREATE TABLE

    • CREATE VIEW

    • BACKUP DATABASE

    • BACKUP LOG

  • [ @username = ] 'security_account'
    Nome dell'entità per cui vengono restituite informazioni sulle autorizzazioni. security_account è di tipo sysname e il valore predefinito è NULL, con il quale vengono restituite tutte le entità nel database corrente. security_account deve esistere nel database corrente.

  • [ @grantorname = ] 'grantor'
    Nome dell'entità che ha concesso le autorizzazioni. grantor è di tipo sysname e il valore predefinito è NULL, con il quale vengono restituite tutte le informazioni relative alle autorizzazioni concesse da qualsiasi entità nel database.

  • [ @permissionarea = ] 'type'
    Stringa di caratteri che indica se visualizzare le autorizzazioni per gli oggetti (stringa di caratteri o), le autorizzazioni per le istruzioni (stringa di caratteri s) o entrambe (os). type è di tipo varchar(10) e il valore predefinito è os. type può essere qualsiasi combinazione di o e s, con o senza virgole o spazi tra le stringhe o e s.

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Set di risultati

Nome colonna

Tipo di dati

Descrizione

Owner

sysname

Nome del proprietario dell'oggetto.

Object

sysname

Nome dell'oggetto.

Grantee

sysname

Nome dell'entità a cui sono state concesse le autorizzazioni.

Grantor

sysname

Nome dell'entità che ha concesso le autorizzazioni all'entità autorizzata specificata.

ProtectType

nvarchar(10)

Nome del tipo di protezione:

GRANT REVOKE

Action

nvarchar(20)

Nome dell'autorizzazione:

  • 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

Tipo di autorizzazione:

All = L'autorizzazione è valida per tutte le colonne correnti dell'oggetto.

New = L'autorizzazione è valida per le nuove colonne che potrebbero essere modificate in futuro nell'oggetto (tramite l'istruzione ALTER).

All+New = L'autorizzazione è valida sia per le colonne correnti che per le nuove colonne.

Osservazioni

Tutti i parametri nella procedura seguente sono facoltativi. Se vengono omessi tutti i parametri, sp_helprotect visualizza tutte le autorizzazioni concesse o negate nel database corrente.

Se vengono specificati alcuni parametri, ma non tutti, utilizzare i parametri denominati per identificare i vari parametri oppure utilizzare NULL come segnaposto dei parametri omessi. Ad esempio, per restituire tutte le autorizzazioni per il proprietario di database (dbo) che concede le autorizzazioni, eseguire l'istruzione seguente:

EXEC sp_helprotect NULL, NULL, dbo

oppure

EXEC sp_helprotect @grantorname = 'dbo'

Il report di output viene ordinato in base a categoria di autorizzazioni, proprietario, oggetto, entità a cui è stata concessa l'autorizzazione, entità che ha concesso l'autorizzazione, categoria del tipo di protezione, tipo di protezione, azione e ID sequenziale di colonna.

Autorizzazioni

È richiesta l'appartenenza al ruolo public.

Le informazioni restituite sono soggette a limitazioni di accesso ai metadati. Non vengono visualizzate le entità per le quali l'entità di database non dispone dell'autorizzazione. Per ulteriori informazioni, vedere Configurazione della visibilità dei metadati.

Esempi

A. Visualizzazione di un elenco delle autorizzazioni per una tabella

Nell'esempio seguente vengono elencate le autorizzazioni per la tabella titles.

EXEC sp_helprotect 'titles'

B. Visualizzazione di un elenco delle autorizzazioni per un utente

Nell'esempio seguente vengono elencate tutte le autorizzazioni disponibili per l'utente Judy nel database corrente.

EXEC sp_helprotect NULL, 'Judy'

C. Visualizzazione di un elenco delle autorizzazioni concesse da un utente specifico

Nell'esempio seguente vengono elencate tutte le autorizzazioni concesse dall'utente Judy nel database corrente, utilizzando il valore NULL come segnaposto per i parametri omessi.

EXEC sp_helprotect NULL, NULL, 'Judy'

D. Visualizzazione di un elenco delle autorizzazioni per le istruzioni

Nell'esempio seguente vengono elencate tutte le autorizzazioni per le istruzioni nel database corrente, utilizzando il valore NULL come segnaposto per i parametri omessi.

EXEC sp_helprotect NULL, NULL, NULL, 's'