sql-server - 在 SQL Server 中解密数据并推送到 View

标签 sql-server sql-server-2008 tsql

我正在尝试加入几个不同的表,其中我要加入的大部分 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/

相关文章:

sql - 如何检查SQL Server 2008中用户定义表类型是否存在?

sql - 如何计算 SQL 列中字符的实例数

c# - 使用 LINQ 在代码中访问 SQL Server 时间

php - 如何在 Dreamweaver 中设置 PHP 测试服务器?

SQL 语句返回 4 年前 4 月 4 日

sql-server - 这是否需要递归 CTE,只是创造性的窗口函数,一个循环?

sql - 如何从 T-SQL 获取当前实例名称

sql - NULL 值对 SQL Server 存储的影响?

sql-server - 提高大小超过 40 GB (Sql Server 2005) 且每月增长约 3GB 的数据库性能的技巧

sql-server - sql - 显示我可以支付的所有分期付款