我在我的一个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上运行需要做些什么?
如果我需要澄清一些事情,请告诉我。
由于
答案 0 :(得分:0)
不要将加密数据从数据库移动到另一个数据库。技术上是可能的,但是你可能会在这个过程中妥协密钥,所以我宁愿不告诉你如何去做。
在站点之间交换数据时,通常的过程将密钥管理和部署与数据传输分开。数据在传输之前被解密,并且使用专用的数据传输加密方案(如TLS和SSL),消除了部署和共享实际加密密钥的问题。
Asa旁注,通常不会使用非对称密钥加密数据。它们对数据操作来说太慢了。每个人都做的是用对称密钥加密数据,然后用非对称密钥加密对称密钥。