Compartilhar via


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ópico 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%';

Consulte também

Referência

procedimentos armazenados do catálogo (Transact-SQL)

Procedimentos armazenados do sistema (Transact-SQL)