Compartilhar via


sp_table_privileges_ex (Transact-SQL)

Aplica-se: SQL Server

Retorna as informações de privilégio sobre a tabela especificada do servidor vinculado especificado.

Convenções de sintaxe de Transact-SQL

Sintaxe

sp_table_privileges_ex
    [ @table_server = ] N'table_server'
    [ , [ @table_name = ] N'table_name' ]
    [ , [ @table_schema = ] N'table_schema' ]
    [ , [ @table_catalog = ] N'table_catalog' ]
    [ , [ @fUsePattern = ] fUsePattern ]
[ ; ]

Argumentos

@table_server [ = ] N'table_server'

O nome do servidor vinculado para o qual as informações serão retornadas. @table_server é sysname, sem padrão.

[ @table_name = ] N'table_name'

O nome da tabela para a qual fornecer informações de privilégio de tabela. @table_name é sysname, com um padrão de NULL.

@table_schema [ = ] N'table_schema'

O esquema da tabela. Em alguns ambientes DBMS, é o proprietário da tabela. @table_schema é sysname, com um padrão de NULL.

@table_catalog [ = ] N'table_catalog'

O nome do banco de dados no qual o @table_name especificado reside. @table_catalog é sysname, com um padrão de NULL.

@fUsePattern [ = ] fUsePattern

Determina se os caracteres _, %, [, e ] 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_CAT sysname Nome do qualificador de tabela. Vários produtos DBMS suportam nomenclatura de três partes para 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. Este campo pode ser NULL.
TABLE_SCHEM sysname O nome do proprietário da tabela. No SQL Server, esta coluna representa o nome do usuário de banco de dados que criou a 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 GRANTOR coluna 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 WITH GRANT OPTION GRANT 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 Esse campo sempre retorna um valor.
PRIVILEGE varchar(32) Uma das permissões de tabela disponíveis. As permissões de tabela podem ter um dos valores a seguir, ou outros valores que tenham suporte na fonte de dados quando a implementação é 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 usando restrições de tabela.

O escopo de ação dado ao GRANTEE privilégio por uma tabela específica depende da fonte de dados. Por exemplo, a UPDATE permissão pode permitir a GRANTEE atualização de todas as colunas em uma tabela em uma fonte de dados e apenas as colunas para as quais o GRANTOR tem permissão UPDATE em outra fonte de dados.
IS_GRANTABLE varchar(3) Indica se o GRANTEE tem permissão para conceder permissões a outros usuários. Isso é frequentemente chamado de 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 na qual "concessão com concessão" não é aplicável.

Comentários

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 as informações de privilégio sobre as tabelas com nomes que começam com Product no banco de dados AdventureWorks2022 do servidor vinculado especificado Seattle1. O SQL Server é assumido como o servidor vinculado.

EXEC sp_table_privileges_ex @table_server = 'Seattle1',
    @table_name = 'Product%',
    @table_schema = 'Production',
    @table_catalog ='AdventureWorks2022';