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