IS_OBJECTSIGNED (Transact-SQL)
Indica se um objeto foi assinado por um determinado certificado ou chave assimétrica.
Sintaxe
IS_OBJECTSIGNED (
'OBJECT', @object_id, @class, @thumbprint
)
Argumentos
'OBJECT'
O tipo de classe do protegível.@object\_id
O parâmetro object_id do objeto que está sendo testado. O tipo de @object\_id é int.@class
A classe do objeto:'certificado'
'chave assimétrica'
@class é sysname.
@thumbprint
A impressão digital SHA do objeto. O tipo de @thumbprint é varbinary(32).
Tipos retornados
int
Comentários
IS_OBJECTSIGNED retorna os seguintes valores:
Valor de retorno |
Descrição |
---|---|
0 |
O objeto não foi assinado. |
1 |
O objeto foi assinado. |
NULL |
O objeto não é válido. |
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 autenticado 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?] ;