Freigeben über


sys.fn_check_object_signatures (Transact-SQL)

Gilt für: SQL Server Azure SQL verwaltete Instanz Analytics 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’

@class weist den Typ sysname auf.

{ @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ückgegeben werden.

Spalte Type Beschreibung
Typ 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.

Hinweise

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)