Compartilhar via


sys.fn_check_object_signatures (Transact-SQL)

Aplica-se a: SQL Server PDW (Sistema de Plataforma de Análise) da Instância Gerenciada de SQL do Azure

Retorna uma lista de todos os objetos assináveis e indica se um objeto foi assinado por um determinado certificado ou chave assimétrica. Se o objeto foi assinado pelo certificado ou pela chave assimétrica especificada, também indicará se a assinatura do objeto é válida.

Convenções de sintaxe de Transact-SQL

Sintaxe

  
fn_ check_object_signatures (   
    { '@class' } , { @thumbprint }   
  )   

Argumentos

{ '@classe' }
Identifica o tipo da impressão digital fornecida:

  • 'certificado'

  • 'chave assimétrica'

@class é sysname.

{ @impressão digital }
O hash SHA-1 do certificado com o qual a chave é criptografada, ou o GUID da chave assimétrica com a qual a chave é criptografada. @a impressão digital é varbinary(20).

Tabelas retornadas

A tabela a seguir lista as colunas que fn_check_object_signatures retorna.

Coluna Type Descrição
tipo nvarchar(120) Retorna a descrição do tipo ou o assembly.
entity_id int Retorna a id de objeto do objeto que está sendo avaliado.
is_signed int Retorna 0 quando o objeto não foi assinado pela impressão digital fornecida. Retorna 1 quando o objeto foi assinado pela impressão digital fornecida.
is_signature_valid int Quando o valor is_signed é 1, retorna 0 quando a assinatura não é válida. Retorna 1 quando a assinatura é válida.

Quando o valor is_signed é 0, sempre retorna 0.

Comentários

Use fn_check_object_signatures para confirmar se usuários mal-intencionados não adulteraram objetos.

Permissões

Requer VIEW DEFINITION no certificado ou na chave assimétrica.

Exemplos

O exemplo a seguir detecta o certificado autenticado de esquema relativo ao banco de dados master e retorna o valor is_signed de 1 e o valor is_signature_valid de 1 para objetos que foram assinados pelo certificado autenticado de esquema e que têm assinaturas válidas.

USE master;  
-- Declare a variable to hold the thumbprint.  
DECLARE @thumbprint varbinary(20) ;  
-- Populate the thumbprint variable with the master database schema signing certificate.  
SELECT @thumbprint = thumbprint   
FROM sys.certificates   
WHERE name LIKE '%SchemaSigningCertificate%' ;  
-- Evaluates the objects signed by the schema signing certificate  
SELECT type, entity_id, OBJECT_NAME(entity_id) AS [object name], is_signed, is_signature_valid  
FROM sys.fn_check_object_signatures ('certificate', @thumbprint) ;  
GO  
  

Confira também

IS_OBJECTSIGNED (Transact-SQL)