sys.fn_check_object_signatures (Transact-SQL)
Devuelve una lista de todos los objetos que se pueden firmar e indica si una clave asimétrica o certificado especificados firman un objeto. Si la clave asimétrica o certificado especificados firman el objeto, también devuelve si la firma del objeto es válida.
Convenciones de sintaxis de Transact-SQL
Sintaxis
fn_ check_object_signatures (
{ '@class' } , { @thumbprint }
)
Argumentos
{ '@class' }
Identifica el tipo de huella digital que se proporciona:'certificado'
'clave asimétrica'
@class es sysname.
{ @thumbprint }
El valor hash SHA-1 del certificado o GUID de la clave asimétrica con el que se cifra la clave. @thumbprint es varbinary(20).
Tablas devueltas
En la tabla siguiente se muestran las columnas que devuelve fn_check_object_signatures.
Columna |
Tipo |
Descripción |
---|---|---|
type |
nvarchar(120) |
Devuelve la descripción del tipo o ensamblado. |
entity_id |
int |
Devuelve el identificador de objeto del objeto que se está evaluando. |
is_signed |
int |
Devuelve 0 cuando la huella digital proporcionada no firma el objeto. Devuelve 1 cuando la huella digital proporcionada firma el objeto. |
is_signature_valid |
int |
Cuando el valor de is_signed es 1, devuelve 0 si la firma no es válida. Devuelve 1 cuando la firma es válida. Cuando el valor de is_signed es 0, siempre devuelve 0. |
Comentarios
Utilice fn_check_object_signatures para confirmar que usuarios malintencionados no hayan alterado los objetos.
Permisos
Se requiere VIEW DEFINITION sobre el certificado o la clave asimétrica.
Ejemplos
En el ejemplo siguiente se busca el certificado de firma del esquema para la base de datos master y se devuelve el valor 1 de is_signed y el valor 1 de is_signature_valid para los objetos firmados por el certificado de firma del esquema que tienen firmas válidas.
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