sp_table_privileges (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure
Retorna uma lista de permissões de tabela (como INSERT
, DELETE
, , UPDATE
SELECT
, 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%';