sp_table_privileges (Transact-SQL)

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

Retorna uma lista de permissões de tabela (como INSERT, , , UPDATEDELETE, SELECT) REFERENCESpara 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 do 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 de propriedade do 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 de sublinhado (), porcentagem () e colchete (_%[ ou ]) são interpretados como caracteres curinga. Os valores válidos são 0 (a correspondência de padrão está desativada) e 1 (a correspondência de padrão 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 concedeu permissões sobre isso TABLE_NAME para o GRANTEE. No SQL Server, essa coluna é sempre a mesma que o TABLE_OWNER. Esse campo sempre retorna um valor. Além disso, a coluna CONCEDENTE 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 usando a WITH GRANT OPTION cláusula na GRANT instrução.
GRANTEE sysname Nome de usuário do GRANTORbanco de dados que recebeu permissões sobre isso TABLE_NAME pelo . No SQL Server, essa coluna sempre inclui um usuário de banco de dados do sys.database_principalssystem modo de 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 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 da ação dado ao GRANTEE privilégio por uma determinada tabela é dependente da fonte de dados. Por exemplo, o privilégio pode permitir a atualização de todas as colunas em uma tabela em uma fonte de dados e somente as colunas para as quais o UPDATEGRANTOR privilégio tem UPDATE em outra fonte de GRANTEE 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 "concessão com concessão" não é aplicável.

Comentários

O sp_table_privileges procedimento armazenado é equivalente a SQLTablePrivileges em ODBC. Os resultados retornados são ordenados por TABLE_QUALIFIER, , TABLE_OWNERTABLE_NAMEe 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%';