IS_OBJECTSIGNED (T-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceDatabase SQL di Microsoft Fabric

Menunjukkan apakah objek ditandatangani oleh sertifikat atau kunci asimetris tertentu.

Konvensi sintaks transact-SQL

Sintaks

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

Argumen

'OBJECT'
Jenis kelas yang dapat diamankan.

@object_id
Object_id objek yang sedang diuji. @object_id adalah jenis int.

@class
Kelas objek:

  • 'sertifikat'

  • 'kunci asimetris'

@class adalah sysname.

@thumbprint
Thumbprint SHA objek. @thumbprint adalah jenis varbinary(32).

Tipe yang Dikembalikan

int

Keterangan

IS_OBJECTSIGNED mengembalikan nilai berikut.

Nilai hasil Deskripsi
NULL Objek tidak ditandatangani, atau objek tidak valid.
0 Objek ditandatangani, tetapi tanda tangan tidak valid.
1 Objek ditandatangani.

Izin

Memerlukan VIEW DEFINITION pada sertifikat atau kunci asimetris.

Contoh

J. Menampilkan properti yang diperluas pada database

Contoh berikut menguji apakah tabel spt_fallback_db dalam database master ditandatangani oleh sertifikat penandatanganan skema.

Note

Di Azure SQL Database dan SQL database di Microsoft Fabric, pernyataan tersebut USE tidak tersedia. Sebaliknya, hubungkan langsung ke master database dan jalankan sisa contoh kode.

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?] ;