Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'te SQL veritabanı
İmzalanmış dijital imzalı verilerin imzalandığından beri değiştirilip değiştirilmediğini test eder.
Transact-SQL söz dizimi kuralları
Sözdizimi
VerifySignedByCert( Cert_ID , signed_data , signature )
Arguments
Cert_ID
Veritabanındaki bir sertifikanın kimliği nedir.
Cert_IDiçsel.
signed_data
Sertifika ile imzalanmış verileri içeren nvarchar, char, varchar veya nchar tipinde bir değişkendir.
imza
İmzalı veriye bağlı olan imza.
İmzavarbinardır.
Dönüş Türleri
int
İmzalı veri değişmediğinde 1 döndürür; aksi takdirde 0.
Açıklamalar
VerifySignedBycert , belirtilen sertifikanın açık anahtarını kullanarak verinin imzasını çözer ve çözülen değeri yeni hesaplanmış MD5 hash verileriyle karşılaştırır. Değerler eşleşirse, imzanın geçerli olduğu doğrulanır.
Permissions
Sertifikada VIEW DEFINITION izni gerektirir.
Örnekler
A. İmzalı verilerin müdahale edilmediğini doğrulamak
Aşağıdaki örnek, içindeki Signed_Data bilginin imzalanmış Shipping04sertifika ile imzalandığından beri değiştirilip değiştirilmediğini test ediyor. İmza içinde DataSignaturesaklanır. Sertifika, Shipping04, sertifikanın veritabanındaki kimliğini döndüren 'ye Cert_IDiletilir. 1 dönerse VerifySignedByCert , imza doğrudur. 0 dönerse VerifySignedByCert , içindeki Signed_Data veri üretilen DataSignatureveri değildir. Bu durumda, ya Signed_Data imzalandıktan sonra değiştirilmiş ya da Signed_Data farklı bir sertifika ile imzalanmıştır.
SELECT Data, VerifySignedByCert( Cert_Id( 'Shipping04' ),
Signed_Data, DataSignature ) AS IsSignatureValid
FROM [AdventureWorks2022].[SignedData04]
WHERE Description = N'data signed by certificate ''Shipping04''';
GO
B. Sadece geçerli imzaya sahip kayıtları geri döndürmek
Bu sorgu, yalnızca sertifika Shipping04ile imzalandıktan sonra değiştirilmemiş kayıtları döndürür.
SELECT Data FROM [AdventureWorks2022].[SignedData04]
WHERE VerifySignedByCert( Cert_Id( 'Shipping04' ), Data,
DataSignature ) = 1
AND Description = N'data signed by certificate ''Shipping04''';
GO
Ayrıca Bkz.
CERT_ID (Transact-SQL)
SIGNBYCERT (Transact-SQL)
SERTİFİKA OLUŞTUR (Transact-SQL)
SERTİFİKAYI DEĞİŞTİR (Transact-SQL)
DROP CERTİ (Transact-SQL)
YEDEKLEME SERTIFIKASI (Transact-SQL)
Şifreleme Hiyerarşisi