sp_table_privileges (Transact-SQL)

Aplica-se a: SQL ServerBanco de Dados SQL do Azure Instância Gerenciada de SQL do Azure

Retorna uma lista de permissões de tabela (como INSERT, DELETE, , UPDATESELECT, REFERENCES) para a tabela ou tabelas especificadas.

Convenções de sintaxe de Transact-SQL

Sintaxe

sp_table_privileges
    [ @table_name = ] N'table_name'
    [ , [ @table_owner = ] N'table_owner' ]
    [ , [ @table_qualifier = ] N'table_qualifier' ]
    [ , [ @fUsePattern = ] fUsePattern ]
[ ; ]

[ @table_name = ] N'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 do padrão curinga.

@table_owner [ = ] N'table_owner'

O proprietário da tabela usada para retornar informações de catálogo. @table_owner é nvarchar(384), com um padrão de NULL. Há suporte para a correspondência do padrão curinga. Se o proprietário não for especificado, as regras de visibilidade de tabela padrão do DBMS subjacente serão aplicadas.

Se o usuário atual possuir uma tabela com o nome especificado, as colunas dessa tabela serão retornadas. Se o proprietário não for especificado e o usuário atual não possuir uma tabela com o nome especificado, este 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 [ = ] N'table_qualifier'

O nome do qualificador de tabela. @table_qualifier é sysname, com um padrão de NULL. Vários produtos de DBMS dão suporte à nomeação de três partes de 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.

@fUsePattern [ = ] fUsePattern

Determina se os caracteres sublinhado (_), porcentagem (%) e colchete ([ ou ]) são interpretados como caracteres curinga. Os valores válidos são 0 (a correspondência de padrões está desativada) e 1 (a correspondência de padrões está ativada). @fUsePattern é bit, com um padrão de 1.

Valores do código de retorno

Nenhum.

Conjunto 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. 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.
GRANTOR sysname Nome de usuário do banco de dados que recebeu permissões para o TABLE_NAME GRANTEE. 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 a quem o proprietário do banco de dados concedeu permissão 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 TABLE_NAME pelo .GRANTOR No SQL Server, essa coluna sempre inclui um usuário de banco de dados da sys.database_principalssystem exibição. 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 das colunas.

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

UPDATE = GRANTEE pode modificar os dados existentes para uma ou mais das 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 privilégio por uma determinada tabela depende da GRANTEE fonte de dados. Por exemplo, o UPDATE privilégio pode permitir que o GRANTEE atualize todas as colunas em uma tabela em uma fonte de dados e apenas as colunas para as quais o GRANTOR tem UPDATE privilégio 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 (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

O sp_table_privileges procedimento armazenado é equivalente ao SQLTablePrivileges 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 AdventureWorks2022;
GO
EXEC sp_table_privileges @table_name = 'Contact%';