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