sp_helprotect (Transact-SQL)

 

QUESTO ARGOMENTO SI APPLICA A:sìSQL Server (a partire dalla versione 2008)noDatabase SQL di AzurenoAzure SQL Data WarehousenoParallel Data Warehouse

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

System_CAPS_ICON_important.jpg Importante


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.

Si applica a: SQL Server (da SQL Server 2008 a versione corrente).

Topic link icon Convenzioni della sintassi Transact-SQL

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

[ @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 le 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 (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 o e s.

0 (esito positivo) o 1 (esito negativo)

Nome colonnaTipo di datiDescrizione
ProprietariosysnameNome del proprietario dell'oggetto.
ObjectsysnameNome dell'oggetto.
GranteesysnameNome dell'entità a cui sono state concesse le autorizzazioni.
GrantorsysnameNome dell'entità che ha concesso le autorizzazioni all'entità autorizzata specificata.
ProtectTypenvarchar(10)Nome del tipo di protezione:

GRANT REVOKE
Azionenvarchar(60)Nome dell'autorizzazione. La validità delle istruzioni di autorizzazione dipende dal tipo di oggetto.
ColonnasysnameTipo 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.

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.

È 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.

A.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';  
  

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

Aggiunte alla community

Mostra: