共用方式為


sys.fn_check_object_signatures (Transact-SQL)

適用於:SQL ServerAzure SQL 受控執行個體Analytics Platform System (PDW)

傳回所有可簽署物件的清單,並指出物件是由指定的憑證或非對稱金鑰簽署。 如果物件是由指定的憑證或非對稱金鑰簽署,它也會傳回物件的簽章是否有效。

Transact-SQL 語法慣例

語法

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

引數

{ '@ class ' }
識別所提供的指紋類型:

  • 'certificate'

  • 'asymmetric key'

@類別 sysname

{ @ thumbprint }
用來加密金鑰之憑證的 SHA-1 雜湊,或用來加密金鑰的非對稱金鑰 GUID。 @指紋 Varbinary(20)

傳回的資料表

下表列出fn_check_object_signatures 傳回的資料行

資料行 類型​ 描述
type nvarchar(120) 傳回類型描述或元件。
entity_id int 傳回所評估物件的物件識別碼。
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)