Partilhar via


sp_table_privileges (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

Devolve uma lista de permissões de tabela (como INSERT, DELETE, UPDATE, SELECT, ) REFERENCESpara a tabela ou tabelas especificadas.

Transact-SQL convenções de sintaxe

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 devolver a informação do catálogo. @table_name é nvarchar(384), sem padrão. É suportada a correspondência de padrões wildcard.

[ @table_owner = ] N'table_owner'

O proprietário da mesa era usado para devolver a informação do catálogo. @table_owner é nvarchar(384), com um padrão de NULL. É suportada a correspondência de padrões wildcard. Se o proprietário não for especificado, aplicam-se as regras padrão de visibilidade da tabela do SGBD subjacente.

Se o utilizador atual possuir uma tabela com o nome especificado, as colunas dessa tabela são devolvidas. Se o proprietário não for especificado e o utilizador atual não possuir uma tabela com o nome especificado, este procedimento procura uma tabela com o table_name especificado pertencente ao proprietário da base de dados. Se existir, as colunas dessa tabela são devolvidas.

[ @table_qualifier = ] N'table_qualifier'

O nome do qualificador da tabela. @table_qualifier é sysname, com um padrão de NULL. Vários produtos de SGBD suportam a nomenclatura em três partes para tabelas (qualifier.owner.name). No SQL Server, esta coluna representa o nome da base de dados. Em alguns produtos, representa o nome do servidor do ambiente de base de dados da tabela.

[ @fUsePattern = ] fUsePattern

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

Valores de código de retorno

Nenhum.

Conjunto de resultados

Nome da coluna Tipo de dados Description
TABLE_QUALIFIER sysname Nome do qualificador da tabela. No SQL Server, esta coluna representa o nome da base de dados. Este campo pode ser NULL.
TABLE_OWNER sysname Nome do dono da mesa. Este campo devolve sempre um valor.
TABLE_NAME sysname Nome da tabela. Este campo devolve sempre um valor.
GRANTOR sysname Nome de utilizador da base de dados que concedeu permissões sobre isto TABLE_NAME para a lista GRANTEE. No SQL Server, esta coluna é sempre a mesma que o TABLE_OWNER. Este campo devolve sempre um valor. Além disso, a coluna GRANTOR pode ser o proprietário da base de dados (TABLE_OWNER) ou um utilizador a quem o proprietário da base de dados concedeu permissão ao usar a WITH GRANT OPTION cláusula na GRANT instrução.
GRANTEE sysname Nome de utilizador da base de dados que recebeu permissões sobre isto TABLE_NAME pela lista GRANTORde . No SQL Server, esta coluna inclui sempre um utilizador da base de dados da sys.database_principalssystem vista. Este campo devolve sempre um valor.
PRIVILEGE sysname Uma das permissões disponíveis para tabelas. As permissões de tabela podem ser um dos seguintes valores (ou outros valores suportados pela fonte de dados quando a implementação é definida):

SELECT = GRANTEE pode recuperar dados de uma ou mais das colunas.

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

UPDATE = GRANTEE pode modificar dados existentes para uma ou mais colunas.

DELETE = GRANTEE Pode remover linhas da tabela.

REFERENCES = GRANTEE pode referenciar uma coluna numa tabela estrangeira numa relação chave primária/chave estrangeira. No SQL Server, as relações chave primária/chave estrangeira são definidas com restrições de tabela.

O âmbito da ação dado GRANTEE por um dado privilégio de tabela depende da fonte de dados. Por exemplo, o UPDATE privilégio pode permitir que atualize GRANTEE todas as colunas de uma tabela numa fonte de dados e apenas aquelas para as quais GRANTOR tem UPDATE privilégio noutra fonte de dados.
IS_GRANTABLE sysname Indica se é GRANTEE permitido conceder permissões a outros utilizadores (frequentemente referido como "conceder com autorizaçã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.

Observações

O sp_table_privileges procedimento armazenado é equivalente a SQLTablePrivileges no ODBC. Os resultados devolvidos estão ordenados por TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME, e PRIVILEGE.

Permissions

Requer SELECT permissão no esquema.

Examples

O exemplo seguinte devolve informação de privilégio sobre todas as tabelas cujos nomes começam com a palavra Contact.

USE AdventureWorks2022;
GO

EXECUTE sp_table_privileges @table_name = 'Contact%';