Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL databáze v Microsoft Fabric
Testuje, zda byla digitálně podepsaná data změněna od jejich podepsání.
Syntaxe
VerifySignedByCert( Cert_ID , signed_data , signature )
Arguments
Cert_ID
Je ID certifikátu v databázi.
Cert_ID je inteligence.
signed_data
Je proměnná typu nvarchar, char, varchar nebo nchar , která obsahuje data podepsaná certifikátem.
podpis
Je podpis, který byl připojen k podepsaným datům.
Signatura je varibinární.
Návratové typy
int
Vrátí 1, když podepsaná data zůstanou nezměněna; jinak 0.
Poznámky
VerifySignedBycert dešifruje podpis dat pomocí veřejného klíče určeného certifikátu a porovnává dešifrovanou hodnotu s nově vypočítaným MD5 hashem dat. Pokud se hodnoty shodují, podpis je potvrzen jako platný.
Povolení
Vyžaduje povolení ZOBRAZIT DEFINICI na certifikátu.
Examples
A. Ověření, že podepsaná data nebyla manipulována
Následující příklad testuje, zda byly informace v změněny Signed_Data od doby, kdy byly podepsány certifikátem nazvaným Shipping04. Podpis je uložen v DataSignature. Certifikát Shipping04, je předán , Cert_IDkteré vrací ID certifikátu v databázi. Pokud VerifySignedByCert vrátí 1, podpis je správný. Pokud VerifySignedByCert vrací 0, data v Signed_Data nejsou daty, která byla použita k generování DataSignature. V tomto případě Signed_Data buď došlo k změně od podpisu, nebo Signed_Data k podepsání jinému certifikátu.
SELECT Data, VerifySignedByCert( Cert_Id( 'Shipping04' ),
Signed_Data, DataSignature ) AS IsSignatureValid
FROM [AdventureWorks2022].[SignedData04]
WHERE Description = N'data signed by certificate ''Shipping04''';
GO
B. Vrácení pouze záznamů, které mají platný podpis
Tento dotaz vrací pouze záznamy, které nebyly změněny od doby, kdy byly podepsány pomocí certifikátu Shipping04.
SELECT Data FROM [AdventureWorks2022].[SignedData04]
WHERE VerifySignedByCert( Cert_Id( 'Shipping04' ), Data,
DataSignature ) = 1
AND Description = N'data signed by certificate ''Shipping04''';
GO
Viz také
CERT_ID (Transact-SQL)
SIGNBYCERT (Transact-SQL)
VYTVOŘIT CERTIFIKÁT (Transact-SQL)
ALTERŮV CERTIFIKÁT (Transact-SQL)
CERTIFIKÁT ODHOĎTE (Transact-SQL)
BACKUP CERTIFICATE (Transact-SQL)
Hierarchie šifrování