sys.fn_check_object_signatures (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