Compartilhar via


sp_column_privileges (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instâ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 = ] N'table_name'
    [ , [ @table_owner = ] N'table_owner' ]
    [ , [ @table_qualifier = ] N'table_qualifier' ]
    [ , [ @column_name = ] N'column_name' ]
[ ; ]

Argumentos

[ @table_name = ] N'table_name'

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

@table_owner [ = ] N'table_owner'

O proprietário da tabela usada para retornar informações de catálogo. @table_owner é sysname, com um padrão de NULL. Não há suporte para a correspondência de padrões 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 serão aplicadas.

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 os privilégios procurarão uma tabela com o @table_name especificado pertencente ao proprietário do banco de dados. Se ela existir, as colunas dessa tabela serão retornadas.

@table_qualifier [ = ] N'table_qualifier'

O nome do qualificador de tabela. @table_qualifier é sysname, com um padrão de NULL. Vários produtos DBMS suportam nomenclatura de três partes para tabelas (<qualifier>.<owner>.<name>). No 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 [ = ] N'column_name'

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

Conjunto de resultados

sp_column_privileges é equivalente a SQLColumnPrivileges em ODBC. Os resultados retornados são ordenados por TABLE_QUALIFIER, , , TABLE_NAMECOLUMN_NAME, e PRIVILEGETABLE_OWNER.

Nome da coluna Tipo de dados Descrição
TABLE_QUALIFIER sysname Nome do qualificador de tabela. Este campo pode ser NULL.
TABLE_OWNER sysname O 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 do TABLE_NAME retornado. Esse campo sempre retorna um valor.
GRANTOR sysname Nome de usuário do banco de dados que recebeu permissões para o COLUMN_NAME .GRANTEE No SQL Server, essa coluna é sempre igual ao TABLE_OWNER. Esse campo sempre retorna um valor.

A GRANTOR coluna 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 GRANT WITH GRANT OPTION cláusula na instrução.
GRANTEE sysname Nome de usuário do banco de dados que recebeu permissões sobre isso COLUMN_NAME pelo .GRANTOR No SQL Server, essa coluna sempre inclui um usuário de banco de dados da sysusers tabela. 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 GRANTEE(pelo ) 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 o GRANTEE tem permissão para conceder permissões a outros usuários (geralmente chamado de permissão "conceder com concessão"). Pode ser YES, NO ou NULL. Um valor desconhecido ou NULL, refere-se a uma fonte de dados para a qual "grant with grant" não é aplicável.

Comentários

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

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';