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.

Ícone de vínculo de tópicoConvenções de 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 de 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 de catálogo. table_owneré nvarchar(384), com um padrão 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 de tabela. table_qualifier é sysname, com um padrão NULL. Vários produtos 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 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 a 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 usando a 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 de dados da exibição de 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 para uma ou mais 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 referenciar 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 referida 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 AdventureWorks2008R2;
GO
EXEC sp_table_privileges 
   @table_name = 'Contact%';