微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sql-server-2005 – 如何在SQL Server 2005数据库之间传输sql加密数据?

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

复制数据库的好方法是什么?通常,我会备份现有数据库,然后将其还原到新数据库.但是,鉴于加密数据,这是否可行?我是否仍然可以使用现有的对称密钥和密码加密并更重要的是解密新数据库中的数据?

我可能想要使用DTS仅传输现有架构.在新数据库中创建新的对称密钥/密码.然后编写即席查询以传输数据,使用现有密钥/密码进行解密,并使用新数据库中的新密钥/密码进行加密.

我猜其核心是,对称密钥是否适用于加密/解密单个数据库或同一服务器上的许多数据库中的数据?

解决方法

您指的对称密钥是数据库主密钥(DMK).它们保存在数据库级别,因此备份/还原到另一个sql服务器应该可以正常工作(需要注意不同的服务帐户,这是 thread提到的)

在你做任何事情之前,确保你有一个你的密钥备份(可能你已经这样做了):

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

从这个article

When you create a Database Master Key,a copy is encrypted with the supplied password and stored in the current database. A copy is also encrypted with the Service Master Key and stored in the master database. The copy of the DMK allows the server to automatically decrypt the DMK,a feature kNown as “automatic key management.” Without automatic key management,you must use the OPEN MASTER KEY statement and supply a password every time you wish to encrypt and/or decrypt data using certificates and keys that rely on the DMK for security. With automatic key management,the OPEN MASTER KEY statement and password are not required.

原文地址:https://www.jb51.cc/mssql/76861.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐