Condividi tramite


DECRYPTBYCERT (Transact-SQL)

Decrittografa dati tramite la chiave privata di un certificato.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

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

Argomenti

  • certificate_ID
    ID di un certificato nel database. certificate_ID è di tipo int.

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

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

  • cert_password
    Password utilizzata per crittografare la chiave privata del certificato. Deve essere Unicode.

  • @cert_password
    Variabile di tipo nchar o nvarchar contenente la password utilizzata per crittografare la chiave privata del certificato. Deve essere 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. Di conseguenza, EncryptByCert e DecryptByCert non sono adatte per le normali procedure di crittografia di dati utente.

Autorizzazioni

È richiesta l'autorizzazione CONTROL per il certificato.

Esempi

Nell'esempio seguente vengono selezionate le righe presenti in [AdventureWorks].[ProtectedData04] contrassegnate come data encrypted by certificate JanainaCert02 e viene decrittografato il testo crittografato tramite la chiave privata del certificato JanainaCert02, di cui viene prima eseguita la decrittografia tramite la password pGFD4bb925DGvbd2439587y del certificato. I dati decrittografati vengono convertiti da varbinary a nvarchar.

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