sp_helprotect (Transact-SQL)

Si applica a:SQL Server

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

Importante

sp_helprotect non restituisce informazioni sulle entità a protezione diretta introdotte in SQL Server 2005 (9.x). Usare 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.

Convenzioni di 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 istruzione con le autorizzazioni per la creazione di report. object_statement è nvarchar(776), con un valore predefinito NULL, che restituisce tutte le autorizzazioni per oggetti e 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 di proprietario nel proprietario del modulo.oggetto .

Se object_statement è un'istruzione , può essere un'istruzione CREATE.

[ @username = ] 'security_account' Nome dell'entità per cui vengono restituite le autorizzazioni. security_account è sysname, con un valore predefinito NULL, che restituisce tutte le entità nel database corrente. security_account deve esistere nel database corrente.

[ @grantorname = ] 'grantor' Nome dell'entità che ha concesso le autorizzazioni. grantor è sysname, con un valore predefinito NULL, che restituisce tutte le informazioni per le 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 dell'istruzione (stringhe di caratteri s) o entrambe (os). il tipo è varchar(10),con un valore predefinito di os. il tipo può essere qualsiasi combinazione di o e s, con o senza virgole o spazi tra o e s.

Valori del codice restituito

0 (operazione completata) o 1 (operazione non riuscita)

Set di risultati

Nome colonna Tipo di dati Descrizione
Proprietario sysname Nome del proprietario dell'oggetto.
Oggetto sysname Nome dell'oggetto .
Beneficiario 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;  

Or

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 altre informazioni, vedere Metadata Visibility Configuration.

Esempi

R. Visualizzazione dell'elenco delle autorizzazioni per una tabella

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

EXEC sp_helprotect 'titles';  

B. Visualizzazione dell'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 dell'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 del solo 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';  

Vedi anche

Stored procedure di sicurezza (Transact-SQL)
DENY (Transact-SQL)
GRANT (Transact-SQL)
REVOKE (Transact-SQL)
Stored procedure di sistema (Transact-SQL)