Partilhar 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ópico Convenções da 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 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, 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 da tabela. table_qualifier é sysname, com um padrão de NULL. Vários produtos de DBMS oferecem suporte à nomeação de três partes de tabelas (qualifier**.owner.**name). No SQL Server, esta coluna representa o nome do banco de dados. Em alguns produtos, 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 column não for especificado, todas as colunas serão retornadas. No SQL Server, column representa o nome da coluna listada na tabela sys.columns. column pode incluir caracteres curinga que usam padrões de correspondência de curingas 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. 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 da coluna, para cada coluna retornada de TABLE_NAME. Esse campo sempre retorna um valor.

GRANTOR

sysname

Nome do usuário do banco de dados que concedeu permissões nesse COLUMN_NAME para o GRANTEE listado. No SQL Server, essa coluna é sempre igual 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 para o qual o proprietário do banco de dados concedeu permissões por meio da cláusula WITH GRANT OPTION na instrução GRANT.

GRANTEE

sysname

O nome do usuário do banco de dados ao qual as permissões nesse COLUMN_NAME foram concedidas pelo GRANTOR listado. No SQL Server, esta 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 fazer referência a 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 AdventureWorks2012;
GO
EXEC sp_column_privileges @table_name = 'Employee' 
    ,@table_owner = 'HumanResources'
    ,@table_qualifier = 'AdventureWorks2012'
    ,@column_name = 'SalariedFlag';

Consulte também

Referência

GRANT (Transact-SQL)

REVOKE (Transact-SQL)

Procedimentos armazenados do sistema (Transact-SQL)