IS_OBJECTSIGNED (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

オブジェクトが、指定した証明書または非対称キーで署名されているかどうかを示します。

Transact-SQL 構文表記規則

構文

IS_OBJECTSIGNED (   
'OBJECT', @object_id, @class, @thumbprint  
  )   

Note

SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

'OBJECT'
セキュリティ保護可能なクラスの型。

@object_id
テストされるオブジェクトの object_id。 @object_idint 型です。

@class
オブジェクトのクラス :

  • 'certificate'

  • 'asymmetric key'

@classsysname です。

@thumbprint
オブジェクトの SHA 拇印。 @thumbprintvarbinary(32) 型です。

返される型

int

解説

IS_OBJECTSIGNED は次の値を返します。

戻り値 説明
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?] ;  

参照

sys.fn_check_object_signatures (Transact-SQL)