Partilhar via


sp_column_privileges (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

Devolve informação de privilégio de coluna para uma única tabela no ambiente atual.

Transact-SQL convenções de sintaxe

Sintaxe

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

Arguments

[ @table_name = ] N'table_name'

A tabela usada para devolver a informação do catálogo. @table_name é sysname, sem padrão. A correspondência de padrões coringa não é suportada.

[ @table_owner = ] N'table_owner'

O proprietário da mesa costumava devolver informações do catálogo. @table_owner é sysname, com o padrão de NULL. A correspondência de padrões coringa não é suportada. Se @table_owner não for especificado, aplicam-se as regras padrão de visibilidade de tabelas do sistema de gestão de bases de dados (SGBD) subjacente.

Se o utilizador atual possuir uma tabela com o nome especificado, as colunas dessa tabela são devolvidas. Se @table_owner não for especificado e o utilizador atual não possuir uma tabela com a @table_name especificada, sp_column os privilégios procuram uma tabela com a @table_name especificada pertencente ao proprietário da base de dados. Se existir, as colunas dessa tabela são devolvidas.

[ @table_qualifier = ] N'table_qualifier'

O nome do qualificador da tabela. @table_qualifier é sysname, com um padrão de NULL. Vários produtos SGBD suportam a nomenclatura em três partes para tabelas (<qualifier>.<owner>.<name>). No SQL Server, esta coluna representa o nome da base de dados. Em alguns produtos, representa o nome do servidor do ambiente de base de dados da tabela.

[ @column_name = ] N'column_name'

Uma única coluna é usada quando apenas uma coluna de informação do catálogo está a ser obtida. @column_name é nvarchar(384), com um padrão de NULL. Se @column_name não for especificado, todas as colunas são devolvidas. No SQL Server, @column_name representa o nome da coluna conforme listado na sys.columns tabela. @column_name podem incluir caracteres coringa usando padrões de correspondência de curingas do SGBD subjacente. Para máxima interoperabilidade, o cliente gateway deve assumir apenas a correspondência de padrões padrão ISO (os % caracteres coringa e _ wildcard).

Conjunto de resultados

sp_column_privileges é equivalente a SQLColumnPrivileges em ODBC. Os resultados devolvidos são ordenados por TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME, COLUMN_NAME, e PRIVILEGE.

Nome da coluna Tipo de dados Description
TABLE_QUALIFIER sysname Nome do qualificador da tabela. Este campo pode ser NULL.
TABLE_OWNER sysname Nome do dono da mesa. Este campo devolve sempre um valor.
TABLE_NAME sysname Nome da tabela. Este campo devolve sempre um valor.
COLUMN_NAME sysname Nome da coluna, para cada coluna do TABLE_NAME devolvido. Este campo devolve sempre um valor.
GRANTOR sysname Nome de utilizador da base de dados que recebeu permissões sobre isto COLUMN_NAME para a lista GRANTEE. No SQL Server, esta coluna é sempre a mesma que o TABLE_OWNER. Este campo devolve sempre um valor.

A GRANTOR coluna pode ser o proprietário da base de dados (TABLE_OWNER) ou um utilizador a quem o proprietário da base de dados concedeu permissões ao usar a WITH GRANT OPTION cláusula na GRANT instrução.
GRANTEE sysname Nome de utilizador da base de dados que recebeu permissões sobre isto COLUMN_NAME pelo nome listado GRANTOR. No SQL Server, esta coluna inclui sempre um utilizador da base de dados da sysusers tabela. Este campo devolve sempre um valor.
PRIVILEGE varchar(32) Uma das permissões de coluna disponíveis. As permissões de coluna podem ser um dos seguintes valores (ou outros valores suportados pela fonte de dados quando a implementação é definida):

SELECT = GRANTEE pode recuperar dados para as colunas.
INSERT = GRANTEE pode fornecer dados para esta coluna quando novas linhas são inseridas (pelo GRANTEE) na tabela.
UPDATE = GRANTEE pode modificar dados existentes na coluna.
REFERENCES = GRANTEE pode referenciar uma coluna numa tabela estrangeira numa relação chave primária/chave estrangeira. As relações chave primária/chave estrangeira são definidas usando restrições de tabela.
IS_GRANTABLE Varchar(3) Indica se é GRANTEE permitido conceder permissões a outros utilizadores (frequentemente referido como "conceder com autorização"). Pode ser YES, NO, ou NULL. Um valor desconhecido, ou NULL, refere-se a uma fonte de dados para a qual "subvenção com subsídio" não se aplica.

Observações

Com o SQL Server, as permissões são concedidas com a GRANT instrução e retiradas pela REVOKE instrução.

Permissions

Requer SELECT permissão no esquema.

Examples

O exemplo seguinte devolve informação de privilégio de coluna para uma coluna específica.

USE AdventureWorks2022;
GO

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