Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Microsoft Fabric
Testar om digitalt signerad data har ändrats sedan den signerades.
Transact-SQL syntaxkonventioner
Syntax
VerifySignedByCert( Cert_ID , signed_data , signature )
Arguments
Cert_ID
Är ID:t på ett certifikat i databasen.
Cert_ID är int.
signed_data
Är en variabel av typen nvarchar, char, varchar eller nchar som innehåller data som har signerats med ett certifikat.
underskrift
Är signaturen som bifogades den signerade datan.
signaturen är varbinär.
Returtyper
int
Returnerar 1 när signerad data är oförändrad; annars 0.
Anmärkningar
VerifySignedBycert dekrypterar signaturen av data med hjälp av den publika nyckeln till det angivna certifikatet och jämför det dekrypterade värdet med en nyberäknad MD5-hash av datan. Om värdena stämmer överens bekräftas signaturen vara giltig.
Permissions
Kräver behörighet VISA DEFINITION på certifikatet.
Examples
A. Verifieringen att signerade data inte har manipulerats
Följande exempel testar om informationen i Signed_Data har ändrats sedan den signerades med certifikatet kallat Shipping04. Signaturen lagras i DataSignature. Certifikatet, Shipping04, skickas till Cert_ID, vilket returnerar certifikatets ID i databasen. Om returnerar VerifySignedByCert 1 är signaturen korrekt. Om VerifySignedByCert returnerar 0 är data i Signed_Data inte den data som användes för att generera DataSignature. I det här fallet har antingen Signed_Data ändrats sedan den undertecknades eller Signed_Data undertecknats med ett annat certifikat.
SELECT Data, VerifySignedByCert( Cert_Id( 'Shipping04' ),
Signed_Data, DataSignature ) AS IsSignatureValid
FROM [AdventureWorks2022].[SignedData04]
WHERE Description = N'data signed by certificate ''Shipping04''';
GO
B. Endast återlämnande av poster med giltig signatur
Denna fråga returnerar endast poster som inte har ändrats sedan de signerades med certifikat.Shipping04
SELECT Data FROM [AdventureWorks2022].[SignedData04]
WHERE VerifySignedByCert( Cert_Id( 'Shipping04' ), Data,
DataSignature ) = 1
AND Description = N'data signed by certificate ''Shipping04''';
GO
Se även
CERT_ID (Transact-SQL)
SIGNBYCERT (Transact-SQL)
SKAPA CERTIFIKAT (Transact-SQL)
ALTER-CERTIFIKAT (Transact-SQL)
SLÄPP CERTIFIKAT (Transact-SQL)
SÄKERHETSKOPIERINGSCERTIFIKAT (Transact-SQL)
Krypteringshierarki