Delen via


DECRYPTBYCERT (Transact-SQL)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

Deze functie gebruikt de privésleutel van een certificaat om versleutelde gegevens te ontsleutelen.

Transact-SQL syntaxis-conventies

Syntaxis

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

Arguments

certificate_ID
De ID van een certificaat in de database. certificate_ID heeft een int datatype.

coderingstekst
De gegevensreeks die is versleuteld met de publieke sleutel van het certificaat.

@ciphertext
Een variabele van het type varbinary die gegevens bevat die met het certificaat is versleuteld.

cert_password
Het wachtwoord dat wordt gebruikt om de persoonlijke sleutel van het certificaat te versleutelen. cert_password moet een Unicode-dataformaat hebben.

@cert_password
Een variabele van het type nchar of nvarchar met het wachtwoord dat wordt gebruikt om de privésleutel van het certificaat te versleutelen. @cert_password moet een Unicode-dataformaat hebben.

Retourtypen

varbinary, met een maximale grootte van 8.000 bytes.

Opmerkingen

Deze functie ontsleutelt gegevens met de privésleutel van een certificaat. Cryptografische transformaties die asymmetrische sleutels gebruiken, verbruiken aanzienlijke middelen. Daarom raden we aan dat ontwikkelaars het gebruik van ENCRYPTBYCERT en DECRYPTBYCERT vermijden voor routinematige gebruikersgegevensversleuteling / -ontsleuteling.

Permissions

DECRYPTBYCERT vereist CONTROL-toestemming op het certificaat.

Voorbeelden

Dit voorbeeld selecteert rijen uit die [AdventureWorks2022].[ProtectedData04] oorspronkelijk als data zijn gemarkeerd door certificaat JanainaCert02. Het voorbeeld ontsleutelt eerst de privésleutel van het certificaat JanainaCert02 met het wachtwoord van certificaat pGFD4bb925DGvbd2439587y. Vervolgens ontsleutelt het voorbeeld de ciphertext met deze privésleutel. Het voorbeeld zet de ontsleutelde data om van varbinary naar nvarchar.

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

Zie ook

ENCRYPTBYCERT (Transact-SQL)
CERTIFICAAT MAKEN (Transact-SQL)
ALTER CERTIFICAAT (Transact-SQL)
DROPCERTIFICAAT (Transact-SQL)
BACK-UPCERTIFICAAT (Transact-SQL)
Versleutelingshiërarchie