sys.fn_check_object_signatures(Transact-SQL)

적용 대상:SQL ServerAzure SQL Managed InstanceAnalytics Platform System(PDW)

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

Transact-SQL 구문 표기 규칙

구문

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

인수

{ '@class' }
제공 중인 지문의 유형을 식별합니다.

  • '인증서'

  • '비대칭 키'

@클래스는 sysname입니다.

{ @지문 }
키 암호화에 사용되는 인증서의 SHA-1 해시이거나 비대칭 키의 GUID입니다. @지문은 varbinary(20)입니다.

반환된 테이블

다음 표에서는 fn_check_object_signatures 반환하는 열을 나열합니다.

Column Type Description
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  
  

참고 항목

IS_OBJECTSIGNED(Transact-SQL)