SQLSERVER加密解密函数(非对称密钥 证书加密 对称密钥)使用方法代

2020-07-10 08:06:12易采站长站整理

        END encryption_state, key_algorithm, key_length
FROM    sys.dm_database_encryption_keys


/*
对所有用户数据库的加密处理也包含对tempdb的处理 ,因为表连接,临时表都要用到tempdb
databasenm encryption_state key_algorithm key_length
tempdb Encrypted AES 256
DB_Encrypt_Demo Encrypted AES 128
*/


–除了更改dek的算法,我们也可以更改用来加密数据库的服务器级证书(该证书应该定期更改)


USE master
GO
CREATE CERTIFICATE TDE_Server_Certificate_V2
WITH SUBJECT = ‘Server-level cert for TDE V2’
GO
USE [pratice]
GO
ALTER DATABASE ENCRYPTION KEY
ENCRYPTION BY SERVER CERTIFICATE TDE_Server_Certificate_V2
–用新证书修改DEK


–移除数据库透明加密
ALTER DATABASE [pratice]
SET ENCRYPTION OFF
GO


–移除TDE后,可以删除DEK
USE [pratice]
GO
DROP DATABASE ENCRYPTION KEY
Go


–注意:如果删除DEK是SQL Server实例中最后一个使用TDE的用户定义数据库,
–在SQL Server实例重启后,tempdb也将变为不加密的状态。

–小结:

–1、本文主要介绍透明数据加密(TDE)的使用。

–2、对DEK的修改同时影响到tempdb数据库的加密状态。
————————————————————————————————


–SQLServer 2008中的代码安全(七) 证书加密

–证书可以在数据库中加密和解密数据。
–证书包含密钥对、关于证书拥有者的信息、证书可用的开始和结束过期日期。

–证书同时包含公钥和密钥,前者用来加密,后者解密。SQL Server可以生成它自己的证书,
–也可以从外部文件或程序集载入。因为可以备份然后从文件中载入它们,证书比非对称密钥更易于移植,
–而非对称密钥却做不到。这意味着可以在数据库中方便地重用同一个证书。


–注意:证书和非对称密钥同样的消耗资源。


–我们看一组例子:

–示例一、创建数据库证书


–创建数据库证书:CREATE SYMMETRIC KEY (http://msdn.microsoft.com/en-us/library/ms187798.aspx)
USE [pratice]
GO
–创建证书
CREATE CERTIFICATE cert_Demo –证书名称
ENCRYPTION BY PASSWORD = ‘123!!!’ –加密证书的密码
WITH SUBJECT = ‘DB_Encrypt_Demo Database Encryption Certificate’,–证书主题
START_DATE = ‘3/14/2012′, EXPIRY_DATE = ’10/20/2016’–起止日期
GO


–示例二、查看数据库中的证书

相关文章 大家在看