Compartilhar via


IS_OBJECTSIGNED (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure

Indica se um objeto foi assinado por um determinado certificado ou chave assimétrica.

Convenções de sintaxe de Transact-SQL

Sintaxe

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

Argumentos

'OBJECT'
O tipo de classe do protegível.

@object_id
O object_id do objeto que está sendo testado. @object_id é do tipo int.

@class
A classe do objeto:

  • 'certificado'

  • 'chave assimétrica'

@class é sysname.

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

Tipos retornados

int

Comentários

IS_OBJECTSIGNED retorna os seguintes valores:

Valor retornado Descrição
NULO O objeto não está assinado ou não é válido.
0 O objeto foi assinado, mas a assinatura não é válida.
1 O objeto foi assinado.

Permissões

Requer VIEW DEFINITION no certificado ou na chave assimétrica.

Exemplos

a. Exibindo propriedades estendidas em um banco de dados

O exemplo a seguir testa se a tabela spt_fallback_db do banco de dados mestre foi assinada pelo certificado de autenticação 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?] ;  

Consulte Também

sys.fn_check_object_signatures (Transact-SQL)