7

我有一个现有的 SQL Server 2005 数据库,其中包含使用对称密钥加密的数据。对称密钥是使用密码打开的。我正在升级使用该数据库的前端应用程序,其中包括添加数十个新表、存储过程、UDF 等,并对现有表和数据库对象进行数十次修改。为此,我正在制作现有开发数据库的副本,以便在进行新开发时可以独立支持、维护和更新当前系统。

复制数据库的好方法是什么?通常,我会备份现有数据库,然后将其还原到新数据库。但是,考虑到加密数据,这是否可行?我是否仍然能够使用现有的对称密钥和密码加密和解密新数据库中的数据?

我是否只想使用 DTS 仅传输现有架构。在新数据库中创建一个新的对称密钥/密码。然后编写临时查询以传输数据,使用现有密钥/密码解密,并使用新数据库中的新密钥/密码加密。

我想这的核心是,对称密钥是否适合在单个数据库或同一服务器上的多个数据库中加密/解密数据?

4

1 回答 1

3

您所指的对称密钥是数据库主密钥 (DMK)。它们保存在数据库级别,因此到另一个 SQL 服务器的备份/恢复应该可以正常工作(注意不同的服务帐户,这个线程暗示)

在你做任何事情之前确保你有你的密钥的备份(大概你已经这样做了):

USE myDB
GO
BACKUP MASTER KEY TO FILE = 'path_to_file'
    ENCRYPTION BY PASSWORD = 'password'
GO

从这篇文章

创建数据库主密钥时,副本会使用提供的密码加密并存储在当前数据库中。副本也使用服务主密钥加密并存储在主数据库中。DMK 的副本允许服务器自动解密 DMK,这一功能称为“自动密钥管理”。如果没有自动密钥管理,您必须使用 OPEN MASTER KEY 语句并在每次您希望使用依赖 DMK 以确保安全的证书和密钥加密和/或解密数据时提供密码。使用自动密钥管理,不需要 OPEN MASTER KEY 语句和密码。

于 2008-09-30T02:30:38.027 回答