Freigeben über


sys.fn_check_object_signatures (Transact-SQL)

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, wird außerdem zurückgegeben, ob die Signatur des Objekts gültig ist.

Themenlink (Symbol)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 ist sysname.

  • { @thumbprint }
    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. @thumbprint ist varbinary(20).

Zurückgegebene Tabellen

In der folgenden Tabelle sind die Spalten aufgeführt, die von fn_check_object_signatures zurückgegeben werden.

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.

Hinweise

Verwenden Sie fn_check_object_signatures, um zu bestätigen, dass die Objekte nicht von böswilligen Benutzern manipuliert worden sind.

Permissions

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

Beispiele

Im folgenden Beispiel werden das Schemasignaturzertifikat für die master-Datenbank gefunden und der is_signed-Wert "1" und der is_signature_valid-Wert "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

Siehe auch

Verweis