我正在尝试加入几个不同的表,其中我要加入的大部分 key 都是加密的。
我想解密列,连接表,然后推送到 View 。
这是我当前的查询:
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
我得到的错误是:
Incorrect syntax near the keyword 'OPEN'
我似乎不知道如何解密数据并将其推送到 View 中。我尝试了多种组合。谢谢你的帮助。
最佳答案
如@TT 所述,您需要在CREATE VIEW
之前执行GO
。这就是语法错误的原因。要创建 View ,您不需要打开的键。所以 CREATE VIEW
应该可以正常工作。要执行您需要打开 key 的 View :
OPEN SYMMETRIC KEY decryption_key decryption BY password = 'password';
SELECT * FROM new_view;
CLOSE SYMMETRIC KEY decryption_key;
key 在连接 session 的其余部分保持打开状态。
关于sql-server - 在 SQL Server 中解密数据并推送到 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49947325/