sp_table_privileges (Transact-SQL)

Restituisce un elenco delle autorizzazioni di tabella, ad esempio INSERT, DELETE, UPDATE, SELECT o REFERENCES, per la tabella o le tabelle specificate.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

sp_table_privileges [ @table_name = ] 'table_name'   
     [ , [ @table_owner = ] 'table_owner' ] 
     [ , [ @table_qualifier = ] 'table_qualifier' ] 
     [ , [@fUsePattern =] 'fUsePattern']

Argomenti

  • [ @table_name = ] 'table_name'
    Tabella utilizzata per restituire le informazioni del catalogo. table_name è di tipo nvarchar(384) e non prevede alcun valore predefinito. Sono supportati criteri di ricerca con caratteri jolly.

  • [ @table_owner = ] 'table_owner'
    Proprietario della tabella utilizzata per restituire le informazioni del catalogo. table_ownerè di tipo nvarchar(384) e il valore predefinito è NULL. Sono supportati criteri di ricerca con caratteri jolly. Se non si specifica il proprietario, vengono applicate le regole di visibilità della tabella predefinite del sistema DBMS sottostante.

    Se l'utente corrente è il proprietario di una tabella con il nome specificato, vengono restituite le colonne di tale tabella. Se owner viene omesso e l'utente corrente non è il proprietario di una tabella con il nome specificato in name, viene eseguita la ricerca di una tabella con nome corrispondente al valore table_name specificato e di proprietà del proprietario del database. Se viene individuata, vengono restituite le colonne di tale tabella.

  • [ @table_qualifier =] 'table_qualifier'
    Nome del qualificatore di tabella. table_qualifier è di tipo sysname e il valore predefinito è NULL. Vari prodotti DBMS supportano nomi in tre parti per le tabelle, ovvero qualifier.owner.name. In SQL Server questa colonna rappresenta il nome del database. In altri prodotti rappresenta il nome del server dell'ambiente di database della tabella.

  • [ @fUsePattern =] 'fUsePattern'
    Determina se i caratteri sottolineatura (_), percentuale (%) e parentesi quadre ([ o ]) vengono interpretati come caratteri jolly. I valori validi sono 0 (utilizzo dei criteri di ricerca disattivato) e 1 (utilizzo dei criteri di ricerca attivato). fUsePattern è di tipo bit e il valore predefinito è 1.

Valori restituiti

Nessuno

Set di risultati

Nome colonna

Tipo di dati

Descrizione

TABLE_QUALIFIER

sysname

Nome del qualificatore della tabella. In SQL Server questa colonna rappresenta il nome del database. Questo campo può essere NULL.

TABLE_OWNER

sysname

Nome del proprietario della tabella. In questo campo viene sempre restituito un valore.

TABLE_NAME

sysname

Nome della tabella. In questo campo viene sempre restituito un valore.

GRANTOR

sysname

Nome dell'utente di database che ha concesso autorizzazioni per la tabella TABLE_NAME all'utente GRANTEE specificato. In SQL Server questa colonna corrisponde sempre a TABLE_OWNER. In questo campo viene sempre restituito un valore. Il valore della colonna GRANTOR, inoltre, può corrispondere al proprietario del database (TABLE_OWNER) o a un utente a cui il proprietario del database ha concesso autorizzazioni tramite la clausola WITH GRANT OPTION dell'istruzione GRANT.

GRANTEE

sysname

Nome dell'utente di database a cui l'utente GRANTOR specificato ha concesso autorizzazioni per la tabella TABLE_NAME. In SQL Server questa colonna include sempre un utente di database dalla vista di sistema sys.database_principals. In questo campo viene sempre restituito un valore.

PRIVILEGE

sysname

Una della autorizzazioni di tabella disponibili. I possibili valori delle autorizzazioni sono quelli seguenti o altri valori supportati dall'origine dei dati al momento della definizione dell'implementazione:

SELECT = l'utente GRANTEE può recuperare i dati di una o più colonne.

INSERT = l'utente GRANTEE può inserire dati per righe nuove di una o più colonne.

UPDATE = l'utente GRANTEE può modificare i dati esistenti in una o più colonne.

DELETE = l'utente GRANTEE può rimuovere righe dalla tabella.

REFERENCES = l'utente GRANTEE può fare riferimento a una colonna di una tabella esterna in una relazione tra chiave primaria e chiave esterna. In SQL Server, questo tipo di relazione viene definito tramite vincoli di tabella.

L'ambito di azione concesso all'utente GRANTEE da un determinato privilegio di tabella dipende dall'origine dei dati. Il privilegio UPDATE, ad esempio, può permettere all'utente GRANTEE di aggiornare tutte le colonne di una tabella in una certa origine dei dati e solo le colonne per le quali l'utente GRANTOR dispone del privilegio UPDATE in un'origine dei dati diversa.

IS_GRANTABLE

sysname

Indica se all'utente GRANTEE è consentito o meno concedere autorizzazioni ad altri utenti (autorizzazione per la concessione di autorizzazioni). I possibili valori sono YES, NO e NULL. Un valore sconosciuto, o NULL, corrisponde a origini dei dati per le quali l'autorizzazione per la concessione di autorizzazioni non è applicabile.

Osservazioni

La stored procedure sp_table_privileges corrisponde a sp_table_privileges in ODBC. I risultati restituiti vengono ordinati in base alle colonne TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME e PRIVILEGE.

Autorizzazioni

È richiesta l'autorizzazione SELECT per lo schema.

Esempi

Nell'esempio seguente vengono restituite informazioni sui privilegi per tutte le tabelle con nome che inizia con la parola Contact.

USE AdventureWorks;
GO
EXEC sp_table_privileges 
   @table_name = 'Contact%';