Share via


sys.fn_check_object_signatures (Transact-SQL)

署名可能なすべてのオブジェクトの一覧を返し、オブジェクトが、指定した証明書または非対称キーで署名されているかどうかを示します。オブジェクトが、指定した証明書または非対称キーで署名されている場合は、そのオブジェクトの署名が有効かどうかも返します。

トピック リンク アイコンTransact-SQL 構文規則

構文

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

引数

  • { '@class' }
    提供される拇印の種類を特定します。

    • 'certificate'

    • 'asymmetric key'

    @class は sysname です。

  • { @thumbprint }
    キーの暗号化で使用された証明書の SHA-1 ハッシュ。または、キーの暗号化で使用された非対称キーの GUID。@thumbprint は varbinary(20) です。

返されるテーブル

次の表は、fn_check_object_signatures によって返される列の一覧です。

説明

type

nvarchar(120)

種類の説明、またはアセンブリを返します。

entity_id

int

評価対象のオブジェクトのオブジェクト ID を返します。

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

関連項目

参照