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_NAME
COLUMN_NAME
, e PRIVILEGE
TABLE_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';