IS_OBJECTSIGNED (Transact-SQL)

Indica si un objeto está firmado por un certificado o clave asimétrica especificados.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

IS_OBJECTSIGNED ( 
'OBJECT', @object_id, @class, @thumbprint
    ) 

Argumentos

  • 'OBJECT'
    Tipo de la clase protegible.

  • @object\_id
    Valor object_id del objeto que se va a probar. @object\_id es de tipo int.

  • @class
    Clase del objeto:

    • 'certificado'

    • 'clave asimétrica'

    @class es de tipo sysname.

  • @thumbprint
    Huella digital SHA del objeto. @thumbprint es de tipo varbinary(32).

Tipos devueltos

int

Notas

IS_OBJECTSIGNED devuelve los siguientes valores.

Valor devuelto

Descripción

0

El objeto no está firmado.

1

El objeto está firmado.

NULL

El objeto no es válido.

Permisos

Se requiere VIEW DEFINITION sobre el certificado o la clave asimétrica.

Ejemplos

A. Mostrar las propiedades extendidas de una base de datos

En el ejemplo siguiente se prueba si la tabla spt_fallback_db de la base de datos maestra está firmada por el certificado de firma de esquema.

USE master
-- Declare a variable to hold a thumbprint and an object name
DECLARE @thumbprint varbinary(20), @objectname sysname;

-- Populate the thumbprint variable with the thumbprint of 
-- the master database schema signing certificate
SELECT @thumbprint = thumbprint 
FROM sys.certificates 
WHERE name LIKE '%SchemaSigningCertificate%';

-- Populate the object name variable with a table name in master
SELECT @objectname = 'spt_fallback_db';

-- Query to see if the table is signed by the thumbprint
SELECT @objectname AS [object name],
IS_OBJECTSIGNED(
'OBJECT', OBJECT_ID(@objectname), 'certificate', @thumbprint
) AS [Is the object signed?] ;