sys.fn_check_object_signatures (Transact-SQL)
S’applique à : SQL Server Azure SQL Managed Instance Analytics 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'
@class 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 qui fn_check_object_signatures retournent.
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. |
Notes
Utilisez fn_check_object_signatures pour confirmer 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