Condividi tramite


sp_column_privileges (Transact-SQL)

Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure

Restituisce informazioni sui privilegi delle colonne di una tabella dell'ambiente corrente.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

sp_column_privileges
    [ @table_name = ] N'table_name'
    [ , [ @table_owner = ] N'table_owner' ]
    [ , [ @table_qualifier = ] N'table_qualifier' ]
    [ , [ @column_name = ] N'column_name' ]
[ ; ]

Argomenti

[ @table_name = ] N'table_name'

Tabella utilizzata per restituire informazioni sul catalogo. @table_name è sysname, senza impostazione predefinita. La corrispondenza dei criteri con caratteri jolly non è supportata.

[ @table_owner = ] N'table_owner'

Proprietario della tabella utilizzata per restituire informazioni sul catalogo. @table_owner è sysname, con il valore predefinito NULL. La corrispondenza dei criteri con caratteri jolly non è supportata. Se @table_owner non viene specificato, si applicano le regole di visibilità della tabella predefinite del sistema di gestione del database sottostante ( DBMS).

Se l'utente corrente è il proprietario di una tabella avente il nome specificato, vengono restituite le colonne di tale tabella. Se @table_owner non è specificato e l'utente corrente non possiede una tabella con il @table_name specificato, sp_column i privilegi cercano una tabella con il @table_name specificato di proprietà del proprietario del database. Se viene individuata, vengono restituite le colonne di tale tabella.

[ @table_qualifier = ] N'table_qualifier'

Nome del qualificatore di tabella. @table_qualifier è sysname, con un valore predefinito .NULL Vari prodotti DBMS supportano la denominazione in tre parti per le tabelle (<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.

[ @column_name = ] N'column_name'

Una singola colonna utilizzata quando viene ottenuta una sola colonna di informazioni sul catalogo. @column_name è nvarchar(384), con il valore predefinito NULL. Se @column_name non viene specificato, vengono restituite tutte le colonne. In SQL Server @column_name rappresenta il nome della colonna come indicato nella sys.columns tabella. @column_name possono includere caratteri jolly usando modelli di corrispondenza con caratteri jolly del sistema DBMS sottostante. Per l'interoperabilità massima, il client del gateway deve presupporre solo i criteri standard ISO (caratteri % jolly e )._

Set di risultati

sp_column_privileges equivale a SQLColumnPrivileges in ODBC. I risultati restituiti vengono ordinati in TABLE_QUALIFIERbase a , TABLE_OWNERTABLE_NAME, , COLUMN_NAMEe PRIVILEGE.

Nome colonna Tipo di dati Descrizione
TABLE_QUALIFIER sysname Nome del qualificatore della tabella. Questo campo può essere NULL.
TABLE_OWNER sysname Nome del proprietario della tabella. Questo campo restituisce sempre un valore.
TABLE_NAME sysname Nome tabella. Questo campo restituisce sempre un valore.
COLUMN_NAME sysname Nome colonna, per ogni colonna dell'oggetto TABLE_NAME restituito. Questo campo restituisce sempre un valore.
GRANTOR sysname Nome utente del database a cui sono state concesse le autorizzazioni per COLUMN_NAME l'oggetto nell'elenco GRANTEE. In SQL Server questa colonna è sempre uguale a TABLE_OWNER. Questo campo restituisce sempre un valore.

La GRANTOR colonna può essere il proprietario del database (TABLE_OWNER) o un utente a cui il proprietario del database ha concesso le autorizzazioni usando la WITH GRANT OPTION clausola nell'istruzione GRANT .
GRANTEE sysname Nome utente del database a cui sono state concesse le autorizzazioni in base COLUMN_NAME all'oggetto elencato GRANTOR. In SQL Server questa colonna include sempre un utente del database dalla sysusers tabella. Questo campo restituisce sempre un valore.
PRIVILEGE varchar(32) Una delle autorizzazioni di colonna disponibili. Le autorizzazioni di colonna possono essere rappresentate da uno dei valori riportati di seguito o da altri valori supportati dall'origine dei dati in fase di definizione dell'implementazione:

SELECT = GRANTEE può recuperare i dati per le colonne.
INSERT = GRANTEE può fornire dati per questa colonna quando vengono inserite nuove righe (da GRANTEE) nella tabella.
UPDATE = GRANTEE può modificare i dati esistenti nella colonna.
REFERENCES = GRANTEE può fare riferimento a una colonna in una tabella esterna in una relazione chiave primaria/chiave esterna. Questo tipo di relazione viene definito tramite vincoli di tabella.
IS_GRANTABLE varchar(3) Indica se l'oggetto GRANTEE è autorizzato a concedere autorizzazioni ad altri utenti (spesso definito "concessione con concessione"). Può essere YES, NO o NULL. Un valore sconosciuto o NULL, fa riferimento a un'origine dati per cui "grant with grant" non è applicabile.

Osservazioni:

Con SQL Server, le autorizzazioni vengono concesse con l'istruzione GRANT e tolte dall'istruzione REVOKE .

Autorizzazioni

È richiesta SELECT l'autorizzazione per lo schema.

Esempi

Nell'esempio seguente vengono restituite informazioni sui privilegi di una colonna specifica.

USE AdventureWorks2022;
GO

EXEC sp_column_privileges
    @table_name = 'Employee',
    @table_owner = 'HumanResources',
    @table_qualifier = 'AdventureWorks2022',
    @column_name = 'SalariedFlag';