Udostępnij za pomocą


DECRYPTBYCERT (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza danych SQL w usłudze Microsoft Fabric

Funkcja ta wykorzystuje klucz prywatny certyfikatu do odszyfrowania zaszyfrowanych danych.

Transact-SQL konwencje składni

Składnia

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

Arguments

certificate_ID
ID certyfikatu w bazie danych. certificate_ID ma typ danych int .

szyfrogram
Ciąg danych zaszyfrowany kluczem publicznym certyfikatu.

@ciphertext
Zmienna typu varbinary zawierająca dane zaszyfrowane certyfikatem.

cert_password
Hasło używane do szyfrowania klucza prywatnego certyfikatu. cert_password musi mieć format danych Unicode.

@cert_password
Zmienna typu nchar lub nvarchar zawierająca hasło używane do szyfrowania klucza prywatnego certyfikatu. @cert_password musi mieć format danych Unicode.

Typy zwracane

varbinary o maksymalnym rozmiarze 8000 bajtów.

Uwagi

Funkcja ta odszyfrowuje dane za pomocą klucza prywatnego certyfikatu. Transformacje kryptograficzne wykorzystujące klucze asymetryczne zużywają znaczne zasoby. Dlatego sugerujemy, aby deweloperzy unikali używania ENCRYPTBYCERT i DECRYPTBYCERT do rutynowego szyfrowania / deszyfrowania danych użytkowników.

Permissions

DECRYPTBYCERT wymaga uprawnienia CONTROL do certyfikatu.

Przykłady

Ten przykład wybiera wiersze z oznaczonych [AdventureWorks2022].[ProtectedData04] jako dane pierwotnie zaszyfrowane przez certyfikat JanainaCert02. Przykład najpierw odszyfrowuje klucz prywatny certyfikatu JanainaCert02 hasłem do certyfikatu pGFD4bb925DGvbd2439587y. Następnie przykład odszyfrowuje tekst zaszyfrowany tym kluczem prywatnym. Przykład konwertuje odszyfrowane dane z varbinary na nvarchar.

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

Zobacz też

ENCRYPTBYCERT (Transact-SQL)
UTWÓRZ CERTYFIKAT (Transact-SQL)
CERTYFIKAT ALTERA (Transact-SQL)
CERTYFIKAT DROP (Transact-SQL)
certyfikat kopii zapasowej (Transact-SQL)
Hierarchia szyfrowania