sys.fn_check_object_signatures (Transact-SQL)

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.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

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

Argumentos

  • { '@class' }
    Identifica o tipo de impressão digital sendo fornecido:

    • 'certificado'

    • 'chave assimétrica'

    @class é sysname.

  • { @thumbprint }
    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. @thumbprint é varbinary(20).

Tabelas retornadas

A tabela a seguir lista as colunas retornadas por fn_check_object_signatures.

Coluna

Tipo

Descrição

type

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 que usuários mal-intencionados não violaram 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 1 de is_signed e o valor 1 de is_signature_valid para objetos assinados pelo certificado de autenticação de esquema que tenham 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

Consulte também

Referência