SignByCert (Transact-SQL)

Signs text with a certificate and returns the signature.

Topic link iconTransact-SQL Syntax Conventions

SignByCert (certificate_ID , @cleartext [ ,'password' ] )


Is the ID of a certificate in the current database. certificate_ID is int.


Is a variable of type nvarchar, char, varchar, or nchar that contains data that will be signed.


Is the password with which the certificate's private key was encrypted. password is nvarchar(128).

varbinary with a maximum size of 8,000 bytes.

Requires CONTROL permission on the certificate.

The following example signs the text in @SensitiveData with certificate ABerglundCert07, having first decrypted the certificate with password "pGFD4bb925DGvbd2439587y". It then inserts the cleartext and the signature in table SignedData04.

DECLARE @SensitiveData nvarchar(max);
SET @SensitiveData = N'Saddle Price Points are 
    2, 3, 5, 7, 11, 13, 17, 19, 23, 29';
INSERT INTO [SignedData04]
    VALUES( N'data signed by certificate ''ABerglundCert07''',
    @SensitiveData, SignByCert( Cert_Id( 'ABerglundCert07' ), 
    @SensitiveData, N'pGFD4bb925DGvbd2439587y' ));