IS_OBJECTSIGNED (Transact-SQL)

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

Значок ссылки на разделСинтаксические обозначения в 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 возвращает следующие значения.

Возвращаемое значение

Описание

0

Объект не подписан.

1

Объект подписан.

NULL

Недопустимый объект.

Разрешения

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

Примеры

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

В следующем примере проверяется, подписана ли таблица 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?] ;

См. также

Справочник