Condividi tramite


DECRYPTBYCERT (Transact-SQL)

Si applica a:SQL Server database SQL di Azure Istanza gestita di SQL di Azure

Questa funzione usa la chiave privata di un certificato per decrittografare i dati crittografati.

Convenzioni di sintassi Transact-SQL

Sintassi

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

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 (12.x) e versioni precedenti, vedere la documentazione delle versioni precedenti.

Argomenti

certificate_ID
ID di un certificato nel database. certificate_ID ha un tipo di dati int.

ciphertext
Stringa di dati crittografata tramite la chiave pubblica del certificato.

@ciphertext
Variabile di tipo varbinary contenente dati crittografati con il certificato.

cert_password
Password usata per crittografare la chiave privata del certificato. cert_password deve avere un formato di dati Unicode.

@cert_password
Variabile di tipo nchar o nvarchar contenente la password usata per crittografare la chiave privata del certificato. @cert_password deve avere un formato di dati Unicode.

Tipi restituiti

varbinary con un valore massimo di 8.000 byte.

Osservazioni:

Questa funzione decrittografa dati tramite la chiave privata di un certificato. Le trasformazioni di crittografia tramite chiavi asimmetriche richiedono una quantità elevata di risorse. È consigliabile pertanto che gli sviluppatori evitino l'uso di ENCRYPTBYCERT e DECRYPTBYCERT per la crittografia / decrittografia di routine dei dati degli utenti.

Autorizzazioni

DECRYPTBYCERT richiede l'autorizzazione CONTROL per il certificato.

Esempi

In questo esempio vengono selezionate le righe da [AdventureWorks2022].[ProtectedData04] contrassegnate come dati originariamente crittografati dal certificato JanainaCert02. Nell'esempio viene prima decrittografata la chiave privata del certificato JanainaCert02 con la password del certificato pGFD4bb925DGvbd2439587y. Viene quindi decrittografato il testo con questa chiave privata. Nell'esempio i dati decrittografati vengono convertiti da varbinary a nvarchar.

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

Vedi anche

ENCRYPTBYCERT (Transact-SQL)
CREATE CERTIFICATE (Transact-SQL)
ALTER CERTIFICATE (Transact-SQL)
DROP CERTIFICATE (Transact-SQL)
BACKUP CERTIFICATE (Transact-SQL)
Gerarchia di crittografia