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.
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