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


sys.fn_check_object_signatures (Transact-SQL)

Область применения: SQL Server Управляемый экземпляр SQL Azure Платформенная система аналитики (PDW)

Возвращает список всех подписываемых объектов и показывает, был ли объект подписан указанным сертификатом или асимметричным ключом. Если объект подписан указанным сертификатом или асимметричным ключом, возвращает также данные о том, является ли подпись объекта допустимой.

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

Синтаксис

  
fn_ check_object_signatures (   
    { '@class' } , { @thumbprint }   
  )   

Аргументы

{ '@class' }
Идентифицирует тип предоставляемого отпечатка:

  • 'certificate'

  • 'asymmetric key'

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

{ @отпечаток }
Хэш SHA-1 сертификата, с помощью которого был зашифрован ключ, или идентификатор GUID асимметричного ключа, которым был зашифрован этот ключ. @Отпечатокvarbinary(20).

Возвращаемые таблицы

В следующей таблице перечислены столбцы, которые fn_check_object_signatures возвращаются.

Column Type Описание
type nvarchar(120) Возвращает описание типа или сборки.
entity_id int Возвращает идентификатор оцениваемого объекта.
is_signed int Возвращает значение 0, если объект не был подписан с помощью предоставленного отпечатка. Возвращает значение 1, если объект подписан с помощью предоставленного отпечатка.
is_signature_valid int Если значение is_signed равно 1, возвращает значение 0, если подпись не является допустимой. Возвращает значение 1, если подпись является допустимой.

Если значение is_signed равно 0, всегда возвращает 0.

Замечания

Используйте fn_check_object_signatures для подтверждения того, что вредоносные пользователи не были изменены с объектами.

Разрешения

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

Примеры

В следующем примере выполняется поиск сертификата подписывания схемы для базы данных master, а также возвращается значение is_signed, равное 1, и значение is_signature_valid, равное 1, для тех объектов, которые подписаны сертификатом подписывания схемы и имеют допустимые подписи.

USE master;  
-- Declare a variable to hold the thumbprint.  
DECLARE @thumbprint varbinary(20) ;  
-- Populate the thumbprint variable with the master database schema signing certificate.  
SELECT @thumbprint = thumbprint   
FROM sys.certificates   
WHERE name LIKE '%SchemaSigningCertificate%' ;  
-- Evaluates the objects signed by the schema signing certificate  
SELECT type, entity_id, OBJECT_NAME(entity_id) AS [object name], is_signed, is_signature_valid  
FROM sys.fn_check_object_signatures ('certificate', @thumbprint) ;  
GO  
  

См. также

IS_OBJECTSIGNED (Transact-SQL)