sp_table_privileges (Transact-SQL)
Retorna uma lista de permissões de tabela (como INSERT, DELETE, UPDATE, SELECT, REFERENCES) para a tabela ou tabelas especificadas.
Convenções da sintaxe Transact-SQL
Sintaxe
sp_table_privileges [ @table_name = ] 'table_name'
[ , [ @table_owner = ] 'table_owner' ]
[ , [ @table_qualifier = ] 'table_qualifier' ]
[ , [ @fUsePattern = ] 'fUsePattern' ]
Argumentos
[ @table\_name= ] 'table_name'
É a tabela usada para retornar informações do catálogo. table_name é nvarchar(384), sem padrã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é nvarchar(384), com o padrão de NULL. Há suporte para a correspondência de padrão curinga. Se o proprietário não for especificado, serão aplicadas as regras de visibilidade de tabela padrão do DBMS subjacente.Se o usuário atual possuir uma tabela com o nome especificado, as colunas dessa tabela serão retornadas. Se owner não estiver especificado e o usuário atual não possuir uma tabela com o name especificado, esse procedimento procurará uma tabela com o table_name especificado, pertencente ao proprietário do banco de dados. Caso exista, as colunas dessa tabela serão retornadas.
[ @table\_qualifier= ] 'table_qualifier'
É o nome do qualificador da tabela. table_qualifier é sysname, com o padrão de NULL. Vários produtos de DBMS dão suporte à nomenclatura de três partes de tabelas (qualifier.owner.name). No SQL Server, essa coluna representa o nome do banco de dados. Em alguns produtos, representa o nome do servidor do ambiente de banco de dados da tabela.[ @fUsePattern= ] 'fUsePattern'
Determina se os caracteres sublinhado (_), porcentagem (%) e colchetes ([ ou ]) são interpretados como curingas. Os valores válidos são 0 (correspondência de padrão desativada) e 1 (correspondência de padrão ativada). fUsePattern é bit, com um padrão de 1.
Valores de código de retorno
Nenhum
Conjuntos de resultados
Nome da coluna |
Tipo de dados |
Descrição |
---|---|---|
TABLE_QUALIFIER |
sysname |
Nome do qualificador de tabela. No SQL Server, essa coluna representa o nome do banco de dados. 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. |
GRANTOR |
sysname |
Nome do usuário do banco de dados que concedeu permissões nesse TABLE_NAME para o GRANTEE listado. No SQL Server, essa coluna é sempre igual ao TABLE_OWNER. Esse campo sempre retorna um valor. Além disso, 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ão 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 TABLE_NAME foram concedidas pelo GRANTOR listado. No SQL Server, essa coluna sempre inclui um usuário de banco da exibição do sistema sys.database_principals. Esse campo sempre retorna um valor. |
PRIVILEGE |
sysname |
Uma das permissões de tabela disponíveis. As permissões de tabela podem ter um dos seguintes valores (ou outros valores que tenham suporte na fonte de dados quando a implementação for definida): SELECT = GRANTEE pode recuperar dados de um ou mais das colunas. INSERT = GRANTEE pode fornecer dados a novas linhas para uma ou mais colunas. UPDATE = GRANTEE pode modificar dados existentes para uma ou mais colunas. DELETE = GRANTEE pode remover linhas da tabela. REFERENCES = GRANTEE pode fazer referência a uma coluna em uma tabela estrangeira em uma relação de chave primária/chave estrangeira. No SQL Server, as relações de chave primária/chave estrangeira são definidas com restrições de tabela. O escopo de ação dado ao GRANTEE por um determinado privilégio de tabela é dependente da fonte de dados. Por exemplo, o privilégio UPDATE pode permitir que o GRANTEE atualize todas as colunas de uma tabela em uma fonte de dados e somente aquelas colunas para as quais o GRANTOR possui o privilégio UPDATE em outra fonte de dados. |
IS_GRANTABLE |
sysname |
Indica se o GRANTEE tem ou não permissão para conceder permissões a outros usuários (em geral referenciada como permissão "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
O procedimento armazenado sp_table_privileges é equivalente a SQLTablePrivileges no ODBC. Os resultados retornados são ordenados por TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME e PRIVILEGE.
Permissões
Requer a permissão SELECT no esquema.
Exemplos
O exemplo a seguir retorna informações de privilégio sobre todas as tabelas com nomes que iniciem com a palavra Contact.
USE AdventureWorks2012;
GO
EXEC sp_table_privileges
@table_name = 'Contact%';