Partilhar via


IS_OBJECTSIGNED (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

Indica se um objeto está assinado por um certificado especificado ou por uma chave assimétrica.

Transact-SQL convenções de sintaxe

Sintaxe

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

Arguments

'OBJETO'
O tipo de classe garantida.

@object_id
A object_id do objeto a ser testado. @object_id é o tipo int.

@class
A classe do objeto:

  • 'certificado'

  • 'chave assimétrica'

@class é sysname.

@thumbprint
A impressão digital SHA do objeto. @thumbprint é tipo varbinário(32).

Tipos Retornados

int

Observações

IS_OBJECTSIGNED devolve os seguintes valores.

Valor de retorno Description
NULO O objeto não está assinado, ou não é válido.
0 O objeto está assinado, mas a assinatura não é válida.
1 O objeto está assinado.

Permissions

Requer VER DEFINIÇÃO no certificado ou chave assimétrica.

Examples

A. Exibir propriedades estendidas numa base de dados

O exemplo seguinte testa se a tabela spt_fallback_db na base de dados mestre está assinada pelo certificado de assinatura do 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?] ;  

Ver também

sys.fn_check_object_signatures (Transact-SQL)