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. Utilizzare invece sys.database_permissions e fn_builtin_permissions.

Non elenca le autorizzazioni che sono sempre assegnate ai ruoli predefiniti del server o del database. Non include gli account di accesso o gli utenti che ricevono autorizzazioni in base all'appartenenza a un ruolo.

Icona di collegamento a un argomento Convenzioni 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, può essere un'istruzione CREATE.

  • [ @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à mediante la quale vengono concesse 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 (o s). type è di tipo varchar(10) e il valore predefinito è o s. type può essere qualsiasi combinazione di o e s, con o senza virgole o spazi tra le stringhe o e s.

Valori di codice restituiti

0 (esito positivo) o 1 (esito negativo)

Set di risultati

Nome colonna

Tipo di dati

Descrizione

Proprietario

sysname

Nome del proprietario dell'oggetto.

Oggetto

sysname

Nome dell'oggetto.

Grantee

sysname

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

Utente che concede le autorizzazioni

sysname

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

ProtectType

nvarchar(10)

Nome del tipo di protezione:

GRANT REVOKE

Azione

nvarchar(60)

Nome dell'autorizzazione. La validità delle istruzioni di autorizzazione dipende dal tipo di oggetto.

Colonna

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.

Restituisce un punto se il tipo di autorizzazione non si applica alle 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 mancanti.

EXEC sp_helprotect NULL, NULL, NULL, 's'; 

E. Elenco delle autorizzazioni per un'istruzione CREATE

Nell'elenco di esempio seguente sono inclusi tutti gli utenti che dispongono dell'autorizzazione CREATE TABLE.

EXEC sp_helprotect @name = 'CREATE TABLE';

Vedere anche

Riferimento

Stored procedure di sicurezza (Transact-SQL)

DENY (Transact-SQL)

GRANT (Transact-SQL)

REVOKE (Transact-SQL)

Stored procedure di sistema (Transact-SQL)