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