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 ou exibição 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 name especificado, este procedimento procurará uma tabela com 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 de DBMS dão suporte à nomeação de três partes de tabelas (qualifier.owner.name). No SQL Server, esta 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, esta coluna representa o nome do banco de dados. Este campo pode ser NULL.

TABLE_OWNER

sysname

Nome do proprietário da tabela. Este campo sempre retorna um valor.

TABLE_NAME

sysname

Nome da tabela. Este campo sempre retorna um valor.

GRANTOR

sysname

Nome de usuário do banco de dados que concedeu permissões neste TABLE_NAME para o GRANTEElistado. No SQL Server, esta coluna é sempre igual a TABLE_OWNER. Este 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 ao qual o proprietário do banco de dados concedeu permissão com o uso da cláusula WITH GRANT OPTION na instrução GRANT.

GRANTEE

sysname

O nome de usuário do banco de dados ao qual as permissões neste TABLE_NAME foram concedidas pelo GRANTORlistado. No SQL Server, esta coluna sempre inclui um usuário de banco de dados da exibição de sistema sys.database_principals. Este 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 uma ou mais colunas.

INSERT = GRANTEE pode fornecer dados para novas linhas de uma ou mais colunas.

UPDATE = GRANTEE pode modificar dados existentes de 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 privilégio de tabela específico é 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 GRANTEE tem ou não permissão para conceder permissões para outros usuários (em geral referida como permissão de "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 em ODBC. Os resultados retornados são ordenados por TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME e PRIVILEGE.

Permissões

Requer 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 AdventureWorks;
GO
EXEC sp_table_privileges 
   @table_name = 'Contact%';