我已经有名为“ContosoUniversity”数据库
Step 1:– 在master DB 建立 master key
USE master;
GO
–查看建立的master key
select * from sys.symmetric_keys
Where name=’##MS_DatabaseMasterKey##’
如果SQL Server中已经有前人建好的Master Key,就继续沿用,因为再重复建立Master Key会 错(或把前人的Master Key Drop掉/p>
Step 2:–在master DB建立SQL Server凭证
USE master;
GO
CREATE CERTIFICATE MySQLServerCert
WITH SUBJECT = ‘用来展示TDE功能的凭证’
–查看建立的凭证
Select * from sys.certificates
Where name=’MySQLServerCert’
如果凭证名称和前人建立的凭证名称重复的话,就另外取个名字吧
Step 3:–在master DB备份SQL Server凭证与私??
USE master;
GO
BACKUP CERTIFICATE MySQLServerCert –要备份的凭证
TO FILE = ‘MySQLServerCert.cert’ –给一个文件名
WITH PRIVATE KEY –建立私??
(
FILE = ‘MySQLPrivateKeyFile.pk’, –默认备份位置为(C:Program FilesMicrosoft SQL ServerMSSQL13.MSSQLSERVERMSSQLDATA)
–根据SQL Server版本不同存放的凭证&私?? 位置会不一样
ENCRYPTION BY PASSWORD = ‘demoPWD’ –这密码很重要!移机时用得到
);
GO
接着另一台机器也要导入刚刚备份的凭证&金钥,否则直接附加数据库会 错↓

另一台机器想要附加TDE加密过的数据库前,得先导入相关凭证&金钥,SQL语法如下
Step1:– 在另一台 SQL Server 建立 master key .
USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = ‘masterKey2PWD’; –密码故意跟之前的master key不一样,没关系
Go
Step 2:USE master;
GO
— 以下是重点!
— 利用之前备份的SQL Server凭证和私??再次建立SQL Server certificate
CREATE CERTIFICATE SQLServerCertAnother –这台SQL Server的凭证名字故意取不一样,没关系
FROM FILE = ‘C:Program FilesMicrosoft SQL ServerMSSQL12.SQLEXPRESS2014MSSQLDATAMySQLServerCert.cert’ –刚刚备份的凭证
WITH PRIVATE KEY
(
FILE = ‘C:Program FilesMicrosoft SQL ServerMSSQL12.SQLEXPRESS2014MSSQLDATAMySQLPrivateKeyFile.pk’, –刚刚备份的私??
DECRYPTION BY PASSWORD = ‘demoPWD’ –密码必须和备份时指定的密码一样
);
GO
Step 3:
如此才能成功附加数据库(.mdf档),这很简单我懒得截图了XD
结语
如果数据库想关闭TDE加密功能的话,可以参考老外MSDN讨论:
The certificate ‘instance’ cannot be dropped because it is bound to one or more database encryption key.
语法如下–关闭TDE加密
Use ContosoUniversity
Go
–把数据库加密功能关闭
ALTER DATABASE ContosoUniversity SET ENCRYPTION OFF
–移除数据库的ENCRYPTION KEY
DROP DATABASE ENCRYPTION KEY
Use master
Go
/* –查询哪些数据库使用SQL Server加密凭证
SELECT db_name(database_id), encryption_state, percent_complete, key_algorithm, key_length
FROM sys.dm_database_encryption_keys
WHERE db_name(database_id) not in(‘tempdb’)
*/
–移除凭证
DROP CERTIFICATE MySQLServerCert
–移除Master Key
DROP MASTER KEY
文章知识点与官方知识档案匹配,可进一步学习相关知识MySQL入门技能树SQL高级技巧CTE和递归查询33012 人正在系统学习中 相关资源:一键救援源码-其它其他资源-CSDN文库
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!