无法从本地计算机上的数据库备份中解密加密列

时间:2015-06-29 17:54:37

标签: sql sql-server encryption sql-server-2014

我在我们的服务器上运行了一个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]

我上面试过但仍然没有运气。

有人能指出我正确的方向吗?非常感谢任何帮助。

由于

1 个答案:

答案 0 :(得分:1)

您已在主数据库中打开主密钥(在您的示例中)

更改第一行使用

Use Test;

Open Master Key 语句适用于当前数据库的上下文。您在Master中打开它,但随后从Test DB中选择了该数据。