sp_column_privileges (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do Azure

Retorna informações de privilégio de coluna para uma única tabela no ambiente atual.

Convenções de sintaxe de Transact-SQL

Sintaxe

  
sp_column_privileges [ @table_name = ] 'table_name'   
     [ , [ @table_owner = ] 'table_owner' ]   
     [ , [ @table_qualifier = ] 'table_qualifier' ]   
     [ , [ @column_name = ] 'column' ]  

Argumentos

[ @table_name= ] 'table_name'
É a tabela usada para retornar informações do catálogo. table_name é sysname, sem padrão. Não há suporte para a correspondência de padrão curinga.

[ @table_owner= ] 'table_owner'
É o proprietário da tabela usada para retornar informações do catálogo. table_owner é sysname, com um padrão de NULL. Não há suporte para a correspondência de padrão curinga. Se table_owner não for especificado, as regras de visibilidade de tabela padrão do DBMS (sistema de gerenciamento de banco de dados) subjacente se aplicarão.

Se o usuário atual possuir uma tabela com o nome especificado, as colunas dessa tabela serão retornadas. Se table_owner não for especificado e o usuário atual não possuir uma tabela com o table_name especificado, sp_column privilégios procurará uma tabela com o table_name especificado de propriedade do proprietário do banco de dados. Se ela existir, as colunas dessa tabela serão retornadas.

[ @table_qualifier= ] 'table_qualifier'
É o nome do qualificador da tabela. table_qualifier é sysname, com um padrão de NULL. Vários produtos DBMS dão suporte à nomenclatura de três partes para tabelas (qualificador.proprietário.name). Em SQL Server, essa coluna representa o nome do banco de dados. Em alguns produtos, ele representa o nome do servidor do ambiente de banco de dados da tabela.

[ @column_name= ] 'column'
É uma única coluna usada quando somente uma coluna de informações do catálogo é obtida. column é nvarchar(384), com um padrão de NULL. Se a coluna não for especificada, todas as colunas serão retornadas. Em SQL Server, column representa o nome da coluna conforme listado na tabela sys.columns. A coluna pode incluir caracteres curinga usando padrões de correspondência curinga do DBMS subjacente. Para obter a interoperabilidade máxima, o cliente de gateway deve pressupor correspondência apenas do padrão ISO (curingas com % e _).

Conjuntos de resultados

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

Nome da coluna Tipo de dados Descrição
TABLE_QUALIFIER sysname Nome do qualificador de tabela. Esse campo pode ser NULL.
TABLE_OWNER sysname Nome do proprietário da tabela. Esse campo sempre retorna um valor.
TABLE_NAME sysname Nome da tabela. Esse campo sempre retorna um valor.
COLUMN_NAME sysname Nome de cada coluna do TABLE_NAME retornado. Esse campo sempre retorna um valor.
GRANTOR sysname Nome de usuário do banco de dados que concedeu permissões neste COLUMN_NAME para o GRANTEE listado. Em SQL Server, essa coluna é sempre a mesma que a TABLE_OWNER. Esse campo sempre retorna um valor.

A coluna GRANTOR pode ser o proprietário do banco de dados (TABLE_OWNER) ou um usuário ao qual o proprietário do banco de dados concedeu permissões usando a cláusula WITH GRANT OPTION na instrução GRANT.
GRANTEE sysname O nome de usuário do banco de dados ao qual as permissões neste COLUMN_NAME foram concedidas pelo GRANTEE listado. Em SQL Server, essa coluna sempre inclui um usuário de banco de dados da tabela sysusers. Esse campo sempre retorna um valor.
PRIVILEGE varchar(32) Uma das permissões de coluna disponíveis. As permissões de coluna podem ter um dos seguintes valores (ou outros valores que tenham suporte na 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 os dados existentes na coluna.

REFERENCES = GRANTEE pode referenciar uma coluna em uma tabela estrangeira em uma relação de chave primária/chave estrangeira. As relações de chave primária/chave estrangeira são definidas usando restrições de tabela.
IS_GRANTABLE varchar(3) Indica se GRANTEE tem permissão para conceder permissões a outros usuários (em geral, referenciada como permissão de "concessão com concessão"). Pode ser YES, NO ou NULL. Um valor desconhecido ou NULL refere-se a uma fonte de dados para a qual a "concessão com concessão" não é aplicável.

Comentários

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

Permissões

Requer a permissão SELECT no esquema.

Exemplos

O exemplo a seguir retorna as informações de privilégio de coluna para uma coluna específica.

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

Consulte Também

GRANT (Transact-SQL)
REVOKE (Transact-SQL)
Procedimentos armazenados do sistema (Transact-SQL)