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
)
Observação
Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.
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?] ;