1、首先我们电脑上要安装有SQL Server,然后要准备一个MDF数据库文件。打开SQL Server。
2、点开数据库这一级,右键点击数据库然后选择-所有任务-附加数据库-附加数据库。
3、在d出界面上点击…按钮,然后找到准备好的MDF数据库文件的存放位置。
4、找到之后选择MDF数据库文件,并点击确定按钮。
5、窗口自动关闭后你就会发现,数据库已经附加上了。
6、如果想把这个数据库去掉的话,那就右键该数据库(比如刚刚附加的数据库)选择所有任务—分离数据库—确定。
SQL Server中的加密简介在SQL Server2000和以前的版本,是不支持加密的。所有的加密 *** 作都需要在程序中完成。这导致一个问题,数据库中加密的数据仅仅是对某一特定程序有意义,而另外的程序如果没有对应的解密算法,则数据变得毫无意义。
到了SQL Server2005,引入了列级加密。使得加密可以对特定列执行,这个过程涉及4对加密和解密的内置函数
SQL Server 2008时代,则引入的了透明数据加密(TDE),所谓的透明数据加密,就是加密在数据库中进行,但从程序的角度来看就好像没有加密一样,和列级加密不同的是,TDE加密的级别是整个数据库。使用TDE加密的数据库文件或备份在另一个没有证书的实例上是不能附加或恢复的。
--以下代码包括创建密钥,加密,解密和删除密钥/*
1.利用对称密钥
搭配EncryptByKey进行数据加密
使用DecryptByKey函数进行解密
这种方式比较适合大数据量
*/
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'XIAOMA'
CREATE CERTIFICATE TOMCERT WITH SUBJECT = 'ZXC CERTIFICATE', EXPIRY_DATE = '2015/01/01'
CREATE SYMMETRIC KEY SYM_TOM WITH ALGORITHM = DESX ENCRYPTION BY CERTIFICATE TOMCERT
OPEN SYMMETRIC KEY SYM_TOM DECRYPTION BY CERTIFICATE TOMCERT
SELECT CONVERT(NVARCHAR(10), Decryptbykey(( Encryptbykey(Key_guid('SYM_TOM'), N'TOM3') )))
CLOSE SYMMETRIC KEY SYM_TOM
DROP SYMMETRIC KEY SYM_TOM
DROP CERTIFICATE TOMCERT
DROP MASTER KEY
--或--
CREATE SYMMETRIC KEY ZXC WITH ALGORITHM = AES_256 ENCRYPTION BY PASSWORD = 'ZXC123456'
OPEN SYMMETRIC KEY ZXC DECRYPTION BY PASSWORD = 'ZXC123456'
SELECT CONVERT(VARCHAR(10), Decryptbykey(Encryptbykey(Key_guid('ZXC'), 'YHDH_C')))
CLOSE SYMMETRIC KEY ZXC
DROP SYMMETRIC KEY ZXC
/*
2.利用非对称密钥
搭配EncryptByAsymKey进行数据加密
使用DecryptByAsymKey函数进行解密
用于更高安全级别的加解密数据
*/
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'XIAOMA'
CREATE ASYMMETRIC KEY ABC WITH ALGORITHM=RSA_2048 ENCRYPTION BY PASSWORD = 'ZXC123456'
ALTER ASYMMETRIC KEY ABC WITH PRIVATE KEY (DECRYPTION BY PASSWORD = 'ZXC123456')
SELECT CONVERT(VARCHAR(100), Decryptbyasymkey (Asymkey_id('ABC'), Encryptbyasymkey(Asymkey_id ('ABC'), 'ZXC123456')))
DROP ASYMMETRIC KEY ABC
DROP MASTER KEY
/*
3.利用凭证的方式
搭配EncryptByCert进行加密
DecryptByCert函数进行解密
比较类似非对称密钥
*/
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'XIAOMA'
CREATE CERTIFICATE ZXC WITH SUBJECT = 'ZXC CERTIFICATE', EXPIRY_DATE = '2015/01/01'
SELECT CONVERT(VARCHAR(20), Decryptbycert(Cert_id('ZXC'), Encryptbycert(Cert_id('ZXC'), '123456')))
DROP CERTIFICATE ZXC
DROP MASTER KEY
--或--
CREATE CREDENTIAL AlterEgo WITH IDENTITY = 'Mary5',
SECRET = '123456'
ALTER LOGIN User1
ADD CREDENTIAL AlterEgo
Drop CREDENTIAL AlterEgo
DROP CREDENTIAL AlterEgo
/*
4.利用密码短语方式
搭配EncryptBypassPhrase进行加密
使用DecryptByPassPhrase函数来解密
比较适合一般的数据加解密
*/
SELECT CONVERT(VARCHAR(100), Decryptbypassphrase('xiaoma', Encryptbypassphrase('xiaoma', '123456')))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)