DECRYPTBYCERT (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance
En esta función se usa la clave privada de un certificado para descifrar los datos cifrados.
Convenciones de sintaxis de Transact-SQL
Sintaxis
DecryptByCert ( certificate_ID , { 'ciphertext' | @ciphertext }
[ , { 'cert_password' | @cert_password } ] )
Argumentos
certificate_ID
Id. de un certificado de la base de datos. certificate_ID tiene un tipo de datos int.
ciphertext
La cadena de datos cifrados con la clave pública del certificado.
@ciphertext
Una variable de tipo varbinary que contiene los datos cifrados con el certificado.
cert_password
La contraseña que se usa para cifrar la clave privada del certificado. cert_password debe tener un formato de datos Unicode.
@cert_password
Una variable de tipo nchar o nvarchar que contiene la contraseña que se usa para cifrar la clave privada del certificado. @cert_password debe tener un formato de datos Unicode.
Tipos de valor devuelto
varbinary, con un tamaño máximo de 8 000 bytes.
Observaciones
Esta función descifra datos con la clave privada de un certificado. Las transformaciones cifradas que utilizan claves asimétricas consumen gran cantidad de recursos. Por tanto, se recomienda que los desarrolladores eviten el uso de ENCRYPTBYCERT y DECRYPTBYCERT para el cifrado y descifrado de datos de usuario rutinarios.
Permisos
DECRYPTBYCERT
requiere el permiso CONTROL en el certificado.
Ejemplos
En este ejemplo se seleccionan filas de [AdventureWorks2022].[ProtectedData04]
marcadas como datos que originalmente se cifraron mediante el certificado JanainaCert02
. En el ejemplo, primero se descifra la clave privada del certificado JanainaCert02
con la contraseña del certificado pGFD4bb925DGvbd2439587y
. Después, en el ejemplo se descifra el texto cifrado con esta clave privada. En el ejemplo, los datos descifrados se convierten de 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
Consulte también
ENCRYPTBYCERT (Transact-SQL)
CREATE CERTIFICATE (Transact-SQL)
ALTER CERTIFICATE (Transact-SQL)
DROP CERTIFICATE (Transact-SQL)
BACKUP CERTIFICATE (Transact-SQL)
Jerarquía de cifrado