sys.fn_check_object_signatures (Transact-SQL)
適用於: SQL Server Azure SQL 受控執行個體 Analytics Platform System (PDW)
傳回所有可簽署對象的清單,並指出物件是由指定的憑證或非對稱密鑰簽署。 如果物件是由指定的憑證或非對稱密鑰簽署,它也會傳回物件的簽章是否有效。
語法
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