DECRYPTBYCERT (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Denna funktion använder certifikatets privata nyckel för att dekryptera krypterad data.

Transact-SQL syntaxkonventioner

Syntax

DecryptByCert ( certificate_ID , { 'ciphertext' | @ciphertext }   
    [ , { 'cert_password' | @cert_password } ] )  

Arguments

certificate_ID
ID:t för ett certifikat i databasen. certificate_ID har en int-datatyp .

chiffertext
Datasträngen krypterad med certifikatets publika nyckel.

@ciphertext
En variabel av typen varbinary som innehåller data krypterad med certifikatet.

cert_password
Lösenordet som används för att kryptera certifikatets privata nyckel. cert_password måste ha ett Unicode-dataformat.

@cert_password
En variabel av typen nchar eller nvarchar som innehåller lösenordet som används för att kryptera certifikatets privata nyckel. @cert_password måste ha ett Unicode-dataformat.

Returtyper

varbinary, med en maximal storlek på 8 000 byte.

Anmärkningar

Denna funktion dekrypterar data med certifikatets privata nyckel. Kryptografiska transformationer som använder asymmetriska nycklar förbrukar betydande resurser. Därför föreslår vi att utvecklare undviker användning av ENCRYPTBYCERT och DECRYPTBYCERT för rutinmässig kryptering/dekryptering av användardata.

Permissions

DECRYPTBYCERT kräver CONTROL-behörighet på certifikatet.

Examples

Detta exempel väljer rader från [AdventureWorks2022].[ProtectedData04] markerade som data ursprungligen krypterade med certifikat JanainaCert02. Exemplet dekrypterar först den privata nyckeln till certifikatet JanainaCert02 med lösenordet till certifikatet pGFD4bb925DGvbd2439587y. Sedan dekrypterar exemplet chiffertexten med denna privata nyckel. Exemplet konverterar den dekrypterade datan från varbinary till nvarchar.

SELECT CONVERT(NVARCHAR(max), DecryptByCert(Cert_Id('JanainaCert02'),  
    ProtectedData, N'pGFD4bb925DGvbd2439587y'))  
FROM [AdventureWorks2022].[ProtectedData04]   
WHERE Description   
    = N'data encrypted by certificate '' JanainaCert02''';  
GO  

Se även

ENCRYPTBYCERT (Transact-SQL)
SKAPA CERTIFIKAT (Transact-SQL)
ALTER-CERTIFIKAT (Transact-SQL)
SLÄPP CERTIFIKAT (Transact-SQL)
SÄKERHETSKOPIERINGSCERTIFIKAT (Transact-SQL)
Krypteringshierarki