ITPub博客

首页 > Linux操作系统 > Linux操作系统 > SQLServer 2005中使用数据加密

SQLServer 2005中使用数据加密

原创 Linux操作系统 作者:hwtong 时间:2011-04-04 13:51:15 0 删除 编辑

1:建立数据库主密钥:
USE ADVENTUREWORKS
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'P@SSW0RD';
GO

2:其次创建存放加密数据的表:
CREATE TABLE TABLENAME(DATA VARCHAR(20))
GO

3:创建数字证书,数字证书的私钥被数据库主密钥加密:
CREATE CERTIFICATE TESTCERTIFICATE
   WITH SUBJECT = 'ADVENTUREWORKS TEST CERTIFICATE',
   EXPIRY_DATE = '10/31/2012';


4:创建对称密钥,使用证书对其进行加密:
CREATE SYMMETRIC KEY TESTSYMMETRICKEY WITH ALGORITHM = DESX ENCRYPTION BY CERTIFICATE TESTCERTIFICATE;

5:插入数据:
OPEN SYMMETRIC KEY TESTSYMMETRICKEY DECRYPTION BY CERTIFICATE TESTCERTIFICATE;
INSERT INTO TABLENAME VALUES (ENCRYPTBYKEY(KEY_GUID('TESTSYMMETRICKEY'),'WISON' )
CLOSE SYMMETRIC KEY TESTSYMMETRICKEY;

6:查询测试:
直接查询SELECT * FROM TABLENAME;发现数据是加密的,无法查看.

使用下面的SQL语句查看数据:
OPEN SYMMETRIC KEY TESTSYMMETRICKEY   DECRYPTION BY CERTIFICATE TESTCERTIFICATE;
SELECT CAST(DECRYPTBYKEY(DATA) AS NVARCHAR) FROM TABLENAME;
CLOSE SYMMETRIC KEY TESTSYMMETRICKEY;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16754036/viewspace-691647/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-07-06

  • 博文量
    116
  • 访问量
    290159