我正在尝试加入几个不同的表,其中我加入的大多数密钥都是加密的。
我想解密列,加入表然后推送到视图。
以下是我当前的查询:
OPEN symmetric KEY decryption_key decryption BY password = 'password';
CREATE VIEW new_view
AS
SELECT
id,
yearid,
quarterid,
CONVERT(VARCHAR(200), Decryptbykey(accountno)) AS 'AccountNo',
CONVERT(NVARCHAR(200), Decryptbykey(firstname)) AS 'FirstName',
CONVERT(NVARCHAR(200), Decryptbykey(lastname)) AS 'LastName',
CONVERT(NVARCHAR(200), Decryptbykey(dateofbirth)) AS 'DateOfBirth',
FROM
table1
JOIN
table2 ON table1.AccountNo = table2.AccountNo
我得到的错误是:
关键字'OPEN'
附近的语法不正确
我似乎无法解密数据并将其推送到视图中。我尝试了多种组合。谢谢你的帮助。
答案 0 :(得分:1)
正如@TT所提到的,GO
之前需要CREATE VIEW
。这就是语法错误的原因。要创建视图,您不需要打开密钥。所以CREATE VIEW
应该可以正常工作。要执行视图,您需要打开密钥:
OPEN SYMMETRIC KEY decryption_key decryption BY password = 'password';
SELECT * FROM new_view;
CLOSE SYMMETRIC KEY decryption_key;
密钥在其余的连接会话中保持打开状态。