sys.fn_check_object_signatures (Transact-SQL)
適用対象: SQL Server Azure SQL Managed Instance Analytics Platform System (PDW)
署名可能なすべてのオブジェクトの一覧を返し、オブジェクトが、指定した証明書または非対称キーで署名されているかどうかを示します。 指定した証明書または署名された非対称キーによってオブジェクトが署名されている場合、オブジェクトの署名が有効かどうかも返されます。
構文
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