Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
Azt vizsgálja, hogy a digitálisan aláírt adatok változtak-e az aláírás óta.
Transact-SQL szintaxis konvenciók
Szemantika
VerifySignedByCert( Cert_ID , signed_data , signature )
Arguments
Cert_ID
Ez egy tanúsítvány azonosítója az adatbázisban.
Cert_IDint.
signed_data
Egy nvarchar, char, varchar vagy nchar típusú változó, amely tanúsítványsal aláírt adatokat tartalmaz.
aláírás
Az az aláírás, amely az aláírt adatokhoz volt csatolva.
Aláírásavarbináris.
Visszatérési típusok
int
1-et ad vissza, ha aláírt adatok változatlanok; egyébként 0.
Megjegyzések
A VerifySignedBycert a megadott tanúsítvány nyilvános kulcsával dekódolja az adatok aláírását, és összehasonlítja a dekódolt értéket az adatok újonnan kiszámított MD5 hash-ével. Ha az értékek egyeznek, az aláírás érvényességét igazolják.
Permissions
A tanúsítványon VIEW DEFINITION engedély szükséges.
Példák
A. Annak ellenőrzése, hogy aláírt adatokat nem manipuláltak
A következő példa azt vizsgálja, hogy az információ Signed_Data megváltozott-e azóta, hogy a tanúsítvány által írt Shipping04aláírt . Az aláírás a DataSignature. A tanúsítvány Shipping04, a Cert_IDtanúsítványnak kerül , amely visszaadja a tanúsítvány azonosítóját az adatbázisban. Ha VerifySignedByCert 1-et ad vissza, az aláírás helyes. Ha VerifySignedByCert 0-t ad vissza, akkor az adat nem az az adat, Signed_Data amelyet generáltak DataSignature. Ebben az esetben vagy Signed_Data a felirat megváltozott, vagy Signed_Data más tanúsítványsal írták alá.
SELECT Data, VerifySignedByCert( Cert_Id( 'Shipping04' ),
Signed_Data, DataSignature ) AS IsSignatureValid
FROM [AdventureWorks2022].[SignedData04]
WHERE Description = N'data signed by certificate ''Shipping04''';
GO
B. Csak olyan rekordokat küld vissza, amelyek érvényes aláírással rendelkeznek
Ez a lekérdezés csak olyan rekordokat ad vissza, amelyeket nem változtattak a tanúsítvány Shipping04használatával aláírva azóta.
SELECT Data FROM [AdventureWorks2022].[SignedData04]
WHERE VerifySignedByCert( Cert_Id( 'Shipping04' ), Data,
DataSignature ) = 1
AND Description = N'data signed by certificate ''Shipping04''';
GO
Lásd még:
CERT_ID (Transact-SQL)
SIGNBYCERT (Transact-SQL)
CREATE CERTIFICATE (Transact-SQL)
MÓDOSÍTÁSI TANÚSÍTVÁNY (Transact-SQL)
LEENGEDŐ TANÚSÍTVÁNY (Transact-SQL)
BIZTONSÁGI MENTÉSI TANÚSÍTVÁNY (Transact-SQL)
Titkosítási hierarchia