I want to encrypt and decrypt the all columns in the table.
With the following i m able to encrypt/decrypt only one column in the table.
CREATE MASTER KEY ENCRYPTION BY
PASSWORD='LORD'
CREATE CERTIFICATE ENCDECTEST
WITH SUBJECT='LORD'
SELECT * FROM SYS.CERTIFICATES
CREATE SYMMETRIC KEY TESTKEY
WITH ALGORITHM=TRIPLE_DES
ENCRYPTION BY CERTIFICATE ENCDECTEST
--Sample table
CREATE TABLE USERS
(UID INT IDENTITY(100,1),
UFNAME VARCHAR(100),
ULNAME VARCHAR(100),
ULOGINDI VARCHAR(50),
UPASSWORD VARBINARY(256))
Procedure to Insert Data in Table
ALTER PROC [InsertUSER]
@UFNAME VARCHAR(100),
@ULNAME VARCHAR(100),
@ULOGINDI VARCHAR(12),
@UPASSWORD VARCHAR(20),
@SALARY VARCHAR(20)
AS
BEGIN
opening the key as it is not already
OPEN SYMMETRIC KEY TESTKEY
DECRYPTION BY CERTIFICATE ENCDECTEST;
-- Insert statement
INSERT INTO [USERS]
(UFNAME, ULNAME, ULOGINDI, UPASSWORD,SALARY)
VALUES
(@UFNAME, @ULNAME, @ULOGINDI,
EncryptByKey(Key_GUID('TESTKEY'), @UPASSWORD),
EncryptByKey(Key_GUID('TEST_KEY'),@SALARY));
END;
--Insert Procedure
EXEC INSERTUSER 'Koti','Routhu','Koti_J_Routhu','GloryToLORD','GloryToLORD'
-- Procedure to Retrive Users
CREATE PROC [RetrieveUSER] @UID INT
AS
BEGIN
-- open the key as it is not already
OPEN SYMMETRIC KEY TESTKEY
DECRYPTION BY CERTIFICATE ENCDECTEST;
-- Select statement
SELECT UID,
UFNAME,
ULNAME,
ULOGINDI,
CONVERT(VARCHAR(20),DECRYPTBYKEY(UPASSWORD)) AS PASSWORD
FROM USERS WHERE UID = @UID;
END;
-- Execute Retrive Procedure
EXEC RetrieveUSER 100
Please help me to encrypt/decrypt all the columns in the table. Thank you
A later question (duplicate; now closed) was asked by the same person with the following additional comment:
i dont want to use TDE(Transparent Data Encryption)