首页  ·  知识 ·  
Label
      编辑:  图片来源:网络
SQL Server 2005 用分层加密和密钥管理基础结构来加密数据。每一层都使用证书、非对称密钥和对称密钥的组合对它下面的一层进行加密。

1.创建数据库主密钥、证书及对称密钥。在SQL Server management studio中,新建查询,输入如下代码创建数据库主密钥:
CREATE DATABASE DEMO;
GO
USE DEMO;
GO
--建Employee表,其中encryptsalary是薪水salary加密列
CREATE  TABLE  EMPLOYEE  ( 
EmployeeID  INT PRIMARY KEY , FULLNAME VARCHAR(100),
SALARY  INT, ENCRYPTSALARY VARBINARY(4000)  )
go
--如果不存在数据库主密钥就创建一个
IF NOT EXISTS 
    (SELECT * FROM sys.symmetric_keys WHERE symmetric_key_id = 101)
    CREATE MASTER KEY ENCRYPTION BY 
    PASSWORD = ?hxJKL95QYV4369#ghf0%94467GRdkjuw54ie5y01478dDkjdahflkujaslekjg5k3fd117r$$#1946kcj$n44ncjhdlj'
go
2. 创建登录和用户slh 
USE MASTER
CREATE LOGIN  slh  WITH PASSWORD=񟡂abcd'
go
USE DEMO;
go
--在数据库DEMO级别为slh创建用户并授予权限
CREATE USER slh  FOR LOGIN  slh
GRANT SELECT,INSERT, UPDATE  ON EMPLOYEE TO slh
3.创建一个证书,指定证书的所有者
CREATE CERTIFICATE CER_SK_slh
AUTHORIZATION slh
WITH SUBJECT ='CERTIFICATE FOR ACCESS SYMMETRIC KEYS -FOR USE BY slh',
  start_date = ༽/01/2006',
  EXPIRY_DATE = ཆ/31/2099' 
Go
4.并用所创建的证书,加密创建对称密钥,对称密钥的算法使用AES类算法
CREATE SYMMETRIC KEY SK_EMPLOYEES_slh
AUTHORIZATION slh
WITH ALGORITHM=AES_192 
ENCRYPTION BY CERTIFICATE CER_SK_slh
go
5.  指定下面的语句在slh的上下文下运行,打开对称密钥,加密数据
exec as login='slh' 
OPEN SYMMETRIC KEY SK_EMPLOYEES_slh DECRYPTION BY CERTIFICATE CER_SK_slh
go
INSERT INTO EMPLOYEE
valueS(1,'zhangsan',񠛸',ENCRYPTBYKEY(KEY_GUID('SK_EMPLOYEES_slh'),񠛸'))
go
INSERT INTO EMPLOYEE
valueS(2,'lishi',񡊰',ENCRYPTBYKEY(KEY_GUID('SK_EMPLOYEES_slh'),񡊰'))
go
6. 关闭对称密钥
CLOSE ALL SYMMETRIC KEYS
 7. 验证数据是否被加密

SELECT * FROM EMPLOYEE
8.将加密的数据解密
OPEN SYMMETRIC KEY SK_EMPLOYEES_slh DECRYPTION BY CERTIFICATE CER_SK_slh
go
SELECT  EMPLOYEEID,SALARY,CONVERT(VARCHAR(1000),DECRYPTBYKEY(ENCRYPTSALARY)) AS SALARY1  FROM  EMPLOYEE 本文作者:宋立桓 来源:http://www.winmag.com.cn/forum/
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读
也许感兴趣的
我们推荐的
主题最新
看看其它的
收藏至微信