Share via


sys.fn_check_object_signatures (Transact-SQL)

S’applique à :SQL ServerAzure SQL Managed InstanceAnalytics Platform System (PDW)

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.

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'

@la classe est sysname.

{ @empreinte }
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. @l’empreinte numérique est varbinary(20).

Tables retournées

Le tableau suivant répertorie les colonnes que fn_check_object_signatures retourne.

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 la valeur 0 lorsque la signature n'est pas valide. Retourne la valeur 1 lorsque la signature est valide.

Lorsque is_signed a la valeur 0, retourne toujours la valeur 0.

Remarques

Utilisez fn_check_object_signatures pour vérifier que les utilisateurs malveillants n’ont pas falsifié les objets.

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

IS_OBJECTSIGNED (Transact-SQL)