Поделиться через


IS_OBJECTSIGNED (Transact-SQL)

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

Указывает, подписан ли объект с помощью определенного сертификата или асимметричного ключа.

Соглашения о синтаксисе Transact-SQL

Синтаксис

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

Аргументы

'OBJECT'
Тип защищаемого класса.

@object_id
Идентификатор object_id проверяемого объекта. Аргумент @object_id имеет тип int.

@class
Класс объекта:

  • 'certificate'

  • 'asymmetric key'

Аргумент @class имеет тип sysname.

@thumbprint
SHA-отпечаток объекта. Аргумент @thumbprint имеет тип varbinary(32).

Возвращаемые типы

int

Замечания

Функция IS_OBJECTSIGNED возвращает следующие значения.

Возвращаемое значение Description
NULL Объект не подписан или недопустим.
0 Объект подписан, но подпись недействительна.
1 Объект подписан.

Разрешения

Необходимо разрешение VIEW DEFINITION на сертификат или асимметричный ключ.

Примеры

А. Отображение расширенных свойств базы данных

В приведенном ниже примере проверяется, подписана ли таблица spt_fallback_db в базе данных master с помощью сертификата подписания схемы.

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?] ;  

См. также

sys.fn_check_object_signatures (Transact-SQL)