Partager via


sys.fn_check_object_signatures (Transact-SQL)

Retourne une liste de tous les objets signables et indique si un objet est signé par un certificat spécifié ou une clé asymétrique. Retourne également une valeur indiquant si la signature d'un objet est valide si l'objet est signé par le certificat spécifié ou une clé asymétrique.

Icône Lien de rubrique Conventions de la syntaxe Transact-SQL

Syntaxe

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

Arguments

  • { '@class' }
    Identifie le type d'empreinte numérique fourni :

    • 'certificate'

    • 'asymmetric key'

    @class est de type sysname.

  • { @thumbprint }
    Hachage SHA-1 du certificat avec lequel la clé est chiffrée ou GUID de la clé asymétrique avec laquelle la clé est chiffrée. @thumbprint est de type varbinary(20).

Tables retournées

Le tableau suivant répertorie les colonnes retournées par fn_check_object_signatures.

Colonne

Type

Description

type

nvarchar(120)

Retourne une description de type ou un assembly.

entity_id

int

Retourne l'ID de l'objet en cours d'évaluation.

is_signed

int

Retourne la valeur 0 lorsque l'objet n'est pas signé par l'empreinte numérique fournie. Retourne la valeur 1 lorsque l'objet est signé par l'empreinte numérique fournie.

is_signature_valid

int

Lorsque is_signed a la valeur 1, retourne 0 lorsque la signature n'est pas valide. Retourne la valeur 1 lorsque la signature est valide.

Lorsque la valeur is_signed est définie sur 0, retourne toujours 0.

Notes

Utilisez la fonction fn_check_object_signatures pour vérifier qu'aucun objet n'a été falsifié par des utilisateurs malveillants.

Autorisations

Nécessite l'autorisation VIEW DEFINITION sur le certificat ou la clé asymétrique.

Exemples

L'exemple suivant recherche le certificat de signature de schéma pour la base de données master et retourne la valeur 1 pour is_signed et la valeur 1 pour is_signature_valid pour les objets signés par le certificat de signature de schéma et dont les signatures sont valides.

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

Voir aussi

Référence

IS_OBJECTSIGNED (Transact-SQL)