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