SQL加密 - 非对称密钥 - 第二服务器

时间:2010-05-10 14:26:19

标签: sql-server-2008 encryption-asymmetric

我在我的一个SQL服务器上创建了一个非对称密钥(2008)。我加密了一个密码字段,我可以在我的开发服务器上检索该密码。

问题出现在我需要将此数据移动到生产服务器的位置。

以下是创建密钥的代码:

CREATE MASTER KEY ENCRYPTION BY PASSWORD='#########'
CREATE ASYMMETRIC KEY UserEncryptionKey
WITH ALGORITHM = RSA_2048

现在,当我在生产服务器上运行它时,它会创建密钥。但是,当我运行我的sproc来获取密码时,它返回NULL。

SQL:

    SELECT EncryptByAsymKey(AsymKey_ID('UserEncryptionKey'), Password ) 
    FROM Users WHERE UserName = '######'

关于如何让加密字段在多个SQL Server上运行需要做些什么?

如果我需要澄清一些事情,请告诉我。

由于

1 个答案:

答案 0 :(得分:0)

不要将加密数据从数据库移动到另一个数据库。技术上是可能的,但是你可能会在这个过程中妥协密钥,所以我宁愿不告诉你如何去做。

在站点之间交换数据时,通常的过程将密钥管理和部署与数据传输分开。数据在传输之前被解密,并且使用专用的数据传输加密方案(如TLS和SSL),消除了部署和共享实际加密密钥的问题。

Asa旁注,通常不会使用非对称密钥加密数据。它们对数据操作来说太慢了。每个人都做的是用对称密钥加密数据,然后用非对称密钥加密对称密钥。