sys.fn_check_object_signatures (Transact-SQL)

Gilt für:SQL ServerAzure SQL Managed InstanceAnalytics Platform System (PDW)

Gibt eine Liste mit allen signierbaren Objekten zurück und gibt an, ob ein Objekt von einem angegebenen Zertifikat oder asymmetrischem Schlüssel signiert wird. Wenn das Objekt von dem angegebenen Zertifikat dem asymmetrischen Schlüssel signiert wird, gibt sie außerdem zurück, ob die Signatur des Objekts gültig ist.

Transact-SQL-Syntaxkonventionen

Syntax

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

Argumente

{ '@class' }
Identifiziert den Typ des Fingerabdrucks, der bereitgestellt wird:

  • ‚Zertifikat’

  • ‚asymmetrischer Schlüssel’

@-Klasse ist sysname.

{ @Fingerabdruck }
SHA-1-Hash des Zertifikats, mit dem der Schlüssel verschlüsselt wird, oder der GUID des asymmetrischen Schlüssels, mit dem der Schlüssel verschlüsselt wird. @Fingerabdruck ist varbinary(20).

Zurückgegebene Tabellen

In der folgenden Tabelle sind die Spalten aufgeführt, die fn_check_object_signatures zurückgibt.

Spalte Typ BESCHREIBUNG
type nvarchar(120) Gibt die Typbeschreibung oder -assembly zurück.
entity_id int Gibt die Objekt-ID des Objekts zurück, das ausgewertet wird.
is_signed int Gibt 0 zurück, wenn das Objekt nicht durch den bereitgestellten Fingerabdruck signiert wird. Gibt 1 zurück, wenn das Objekt durch den bereitgestellten Fingerabdruck signiert wird.
is_signature_valid int Wenn der is_signed-Wert 1 ist, wird 0 zurückgegeben, wenn die Signatur nicht gültig ist. Gibt den Wert 1 zurück, wenn die Signatur gültig ist.

Wenn der is_signed-Wert 0 ist, wird immer 0 zurückgegeben.

Bemerkungen

Verwenden Sie fn_check_object_signatures , um zu bestätigen, dass böswillige Benutzer keine Objekte manipuliert haben.

Berechtigungen

Erfordert die VIEW DEFINITION-Berechtigung für das Zertifikat oder den asymmetrischen Schlüssel.

Beispiele

Im folgenden Beispiel wird das Schemasignaturzertifikat für die master-Datenbank gefunden und der is_signed-Wert von 1 und der is_signature_valid-Wert von 1 für diejenigen Objekte zurückgegeben, die durch das Schemasignaturzertifikat signiert werden und die gültige Signaturen aufweisen.

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  
  

Weitere Informationen

IS_OBJECTSIGNED (Transact-SQL)