我在我们的服务器上运行了一个SQL Server 2014。我们正在为数据库实施安全步骤。我在服务器上的数据库中的一个表中加密了一列。问题是当我在本地SQL服务器上恢复备份并运行查询来解密列数据时,它会为我提供空值。另一方面,当我解密主服务器上的列数据时,它工作正常。我在这个论坛上发现了一个帖子,它说明在不同服务器上恢复加密数据库时会做以下事情。
USE [master];
GO
OPEN MASTER KEY DECRYPTION BY PASSWORD = 'StrongPassword';
ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY;
GO
select File_Name
, CONVERT(nvarchar,DECRYPTBYKEY(File_Name))
from [test].[dbo].[Orders_Customer]
我上面试过但仍然没有运气。
有人能指出我正确的方向吗?非常感谢任何帮助。
由于
答案 0 :(得分:1)
您已在主数据库中打开主密钥(在您的示例中)
更改第一行使用
Use Test;
Open Master Key 语句适用于当前数据库的上下文。您在Master中打开它,但随后从Test DB中选择了该数据。