IS_OBJECTSIGNED(Transact-SQL)
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance
개체가 지정된 인증서 또는 비대칭 키로 서명되었는지를 나타냅니다.
구문
IS_OBJECTSIGNED (
'OBJECT', @object_id, @class, @thumbprint
)
인수
'OBJECT'
보안 개체 클래스의 유형입니다.
@object_id
테스트 중인 개체의 object_id입니다. @object_id는 int 형식입니다.
@class
개체의 클래스입니다.
'인증서'
'비대칭 키'
@class는 sysname입니다.
@thumbprint
개체의 SHA 지문입니다. @thumbprint는 varbinary(32) 형식입니다.
반환 형식
int
설명
IS_OBJECTSIGNED는 다음과 같은 값을 반환합니다.
반환 값 | Description |
---|---|
NULL | 개체가 서명되지 않았거나 개체가 유효하지 않습니다. |
0 | 개체가 서명되었지만 서명이 유효하지 않습니다. |
1 | 개체가 서명되었습니다. |
사용 권한
인증서 또는 비대칭 키에 대한 VIEW DEFINITION이 필요합니다.
예제
A. 데이터베이스의 확장 속성 표시
다음 예에서는 master 데이터베이스의 spt_fallback_db 테이블이 스키마 서명 인증서로 서명되었는지를 테스트합니다.
USE master;
-- Declare a variable to hold a thumbprint and an object name
DECLARE @thumbprint varbinary(20), @objectname sysname;
-- Populate the thumbprint variable with the thumbprint of
-- the master database schema signing certificate
SELECT @thumbprint = thumbprint
FROM sys.certificates
WHERE name LIKE '%SchemaSigningCertificate%';
-- Populate the object name variable with a table name in master
SELECT @objectname = 'spt_fallback_db';
-- Query to see if the table is signed by the thumbprint
SELECT @objectname AS [object name],
IS_OBJECTSIGNED(
'OBJECT', OBJECT_ID(@objectname), 'certificate', @thumbprint
) AS [Is the object signed?] ;