我正在考虑使用一些 SQL Server 2008 的加密。
我在 MSDN 上阅读了以下文章:
Q1a:是否为每个数据库实例创建了主密钥密码?
IF NOT EXISTS
(SELECT * FROM sys.symmetric_keys WHERE symmetric_key_id = 101)
CREATE MASTER KEY ENCRYPTION BY
PASSWORD = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
GO
Run Code Online (Sandbox Code Playgroud)
Q1b:如果我在 Server1 上创建主密钥密码并加密表中的列。当我备份该数据库 (.bak) 时,我是否能够将数据库还原到另一个 Server2,或者我是否必须使用相同的密码在 Server2 上创建一个主密钥?
Q2 : 如果我想恢复到另一台服务器,是否需要备份证书、主密钥或对称密钥?
CREATE CERTIFICATE HumanResources037
WITH SUBJECT = 'Employee Social Security Numbers';
GO
CREATE SYMMETRIC KEY SSN_Key_01
WITH ALGORITHM = AES_256
ENCRYPTION BY CERTIFICATE HumanResources037;
GO
Run Code Online (Sandbox Code Playgroud)
Q3 : 什么时候应该打开对称密钥?应该在每次选择之前完成然后关闭吗?即在存储过程开始时打开,然后关闭。
-- Open the symmetric key with which to encrypt the …Run Code Online (Sandbox Code Playgroud)