sp_helprotect (Transact-SQL)

Si applica a: SQL Server

Restituisce un report che contiene informazioni sulle autorizzazioni utente per un oggetto o sulle autorizzazioni di istruzione nel database corrente.

Importante

sp_helprotect non restituisce informazioni sulle entità a protezione diretta introdotte in SQL Server 2005 (9.x) e versioni successive. Usare sys.database_permissions e sys.fn_builtin_permissions .

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

Convenzioni relative alla sintassi Transact-SQL

Sintassi

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

Argomenti

[ @name = ] N'name'

Nome dell'oggetto nel database corrente o istruzione , ovvero le autorizzazioni per la creazione di report. @name è 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 proprietario nel formato <owner>.<object>.

Se @name è un'istruzione , può essere un'istruzione CREATE .

[ @username = ] N'username'

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

[ @grantorname = ] N'grantorname'

Nome dell'entità che ha concesso le autorizzazioni. @grantorname è sysname, con un valore predefinito NULL, che restituisce tutte le informazioni per le autorizzazioni concesse da qualsiasi entità nel database.

[ @permissionarea = ] 'permissionarea'

Stringa di caratteri che indica se visualizzare le autorizzazioni per gli oggetti (stringa odi caratteri ), le autorizzazioni dell'istruzione (stringa sdi caratteri ) o entrambe (o s). @permissionarea è varchar(10), con il valore predefinito o s. @permissionarea può essere qualsiasi combinazione di o e s, con o senza virgole o spazi tra o e s.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

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(60) Nome dell'autorizzazione. La validità delle istruzioni di autorizzazione dipende dal tipo di oggetto.
Column sysname Tipo di autorizzazione:

All = L'autorizzazione copre tutte le colonne correnti dell'oggetto .
New = L'autorizzazione copre le nuove colonne che potrebbero essere modificate (usando l'istruzione ALTER ) sull'oggetto in futuro.
All+New = Combinazione di All e New.

Restituisce un punto se il tipo di autorizzazione non si applica alle colonne.

Osservazioni:

Tutti i parametri nella procedura seguente sono facoltativi. Se eseguito senza 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 segnalare tutte le autorizzazioni per il proprietario del database di grantor (dbo), eseguire lo script seguente:

EXEC sp_helprotect NULL, NULL, dbo;

O

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. Le entità in cui l'entità non dispone dell'autorizzazione non vengono visualizzate. Per altre informazioni, vedere Metadata Visibility Configuration.

Esempi

R. Elencare le autorizzazioni per una tabella

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

EXEC sp_helprotect 'titles';

B. Elencare le 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. Elencare le autorizzazioni concesse da un utente specifico

Nell'esempio seguente vengono elencate tutte le autorizzazioni concesse dall'utente Judy nel database corrente e viene NULL usato come segnaposto per i parametri mancanti.

EXEC sp_helprotect NULL, NULL, 'Judy';

D. Elencare solo le 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'esempio seguente sono elencati tutti gli utenti a cui viene concessa l'autorizzazione CREATE TABLE .

EXEC sp_helprotect @name = 'CREATE TABLE';