1.检查当前是否有透明加密
select DB_NAME(database_id),encryption_state
from sys.dm_database_encryption_keys
db_name encryption_state
tempdb 3
SDPACS 3
encryption_state:
0=没有数据库加密密钥
1=未加密
2=加密中
3=加密
4=密钥变化中
5=解密中
6=保护改变中
select name,is_master_key_encrypted_by_server
from sys.databases;
name is_master_key_encrypted_by_server
master 1
tempdb 0
model 0
msdb 0
ReportServer 0
ReportServerTempDB 0
SDPACS 0
除MASTER为1外,其他都为0
2.关闭TDE(透明数据加密)
USE master;
GO
ALTER DATABASE SDPACS SET ENCRYPTION OFF;
GO
3.删除数据库加密密钥
use SDPACS
drop database encryption key;
go
这个时候,可能会报在使用中。检查状态,状态要为1才行。
select DB_NAME(database_id),encryption_state
from sys.dm_database_encryption_keys
db_name encryption_state
tempdb 3
SDPACS 1
一般看到的状态为5的比较多。多等一下即可。或者重启SQLSERVER服务即可,一般该操作在访问比较少的情况下操作。
4.从主数据库中删除TDE证书
select name,pvt_key_encryption_type,pvt_key_encryption_type_desc from sys.certificates;
找到证书名字
USE master
Go
DROP CERTIFICATE DEKCertificate;
Go
5. 删除主密钥
USE master
Go
DROP MASTER KEY;
GO
检查发现 tempdb 还加密中
select DB_NAME(database_id),encryption_state
from sys.dm_database_encryption_keys
db_name encryption_state
tempdb 3
重启数据库,会自动重建tempdb,之后,再看,就没有了。
|