다음을 통해 공유


sys.fn_check_object_signatures(Transact-SQL)

모든 서명 가능한 개체의 목록을 반환하고 개체가 지정된 인증서 또는 비대칭 키로 서명되었는지를 나타냅니다. 개체가 지정된 인증서 또는 비대칭 키로 서명된 경우 개체의 서명이 유효한지 여부도 반환됩니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

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

인수

  • { '@class' }
    제공되는 지문의 유형을 식별합니다.

    • '인증서'

    • '비대칭 키'

    @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

참고 항목

참조