Compartilhar via


sp_column_privileges (Transact-SQL)

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

Ícone de vínculo de tópicoConvenções de sintaxe 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 de catálogo. table_name é sysname, sem padrão definido. Não há suporte para a correspondência de padrão curinga.

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

    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 table_name especificado, sp_column privileges procurará uma tabela com table_name especificado que seja 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 de tabela. table_qualifier é sysname, com um padrão NULL. Diversos produtos de DBMS dão suporte à nomenclatura de três partes para tabelas (qualifier**.owner.**name). No SQL Server, esta coluna representa o nome do banco de dados. Em alguns produtos, ela 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 de catálogo é obtida. column é nvarchar(384), com um padrão NULL. Se column não for especificado, todas as colunas serão retornadas. No SQL Server, column representa o nome da coluna conforme listado na tabela sys.columns. column 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 no 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. Este campo pode ser NULL.

TABLE_OWNER

sysname

Nome do proprietário da tabela. Este campo sempre retorna um valor.

TABLE_NAME

sysname

Nome da tabela. Este campo sempre retorna um valor.

COLUMN_NAME

sysname

Nome de cada coluna do TABLE_NAME retornado. Este 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. No SQL Server, essa coluna é sempre igual a TABLE_OWNER. Este 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. No SQL Server, esta coluna sempre inclui um usuário de banco de dados da tabela sysusers. Este 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 o SQL Server, as permissões são concedidas com a instrução GRANT e retiradas com a 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 AdventureWorks2008R2;
GO
EXEC sp_column_privileges @table_name = 'Employee' 
    ,@table_owner = 'HumanResources'
    ,@table_qualifier = 'AdventureWorks2008R2'
    ,@column_name = 'SalariedFlag';