sql server 怎么设置表中加密

 时间:2026-02-12 17:04:22

1、测试环境说明

测试使用SQL Servre 2012 R2,创建如下的数据表:

--创建测试用的用户表

CREATE TABLE TBLUser 

(    

    Name             nvarchar(30),     

    Password         varbinary(1000),    

)

GO

sql server 怎么设置表中加密

2、创建数据库主密钥

数据库主密钥(Database Master Key)在服务主密钥之下,由服务主密钥进行加密。这是一个数据库级别的密钥,可以用于为创建数据库级别的证书或非对称密钥提供加密。每一个数据库只能有一个数据库主密钥,通过T-SQL语句创建。具体代码如下:

--创建数据库主密钥

CREATE MASTER KEY ENCRYPTION BY PASSWORD ='passW@ord'

GO

sql server 怎么设置表中加密

3、创建证书

创建一个用来加密对称秘钥证书,具体代码如下:

--创建证书

CREATE CERTIFICATE TestCert with SUBJECT = 'Test Certificate'

GO

sql server 怎么设置表中加密

4、创建一个对称秘钥

由SQL Server加密层次结构可以看出,对称密钥可以通过密码创建,也可以通过其它对称密钥、非对称密钥和证书创建。本文以证书创建一个测试用的对称秘钥,具体代码如下:

--创建对称密钥

CREATE SYMMETRIC KEY TestSymmetric WITH ALGORITHM = AES_256

    ENCRYPTION BY CERTIFICATE TestCert 

GO

sql server 怎么设置表中加密

5、加密数据

先打开证对称秘钥,再使用ENCRYPTBYKEY函数加密数据,完成后关闭对称秘钥。具体代码如下:

--使用对称秘钥加密数据

OPEN SYMMETRIC KEY TestSymmetric DECRYPTION BY CERTIFICATE TestCert;

INSERT INTO TBLUser values('张三', ENCRYPTBYKEY(Key_Guid(N'TestSymmetric'), '123456'));

CLOSE SYMMETRIC KEY TestSymmetric;

GO

sql server 怎么设置表中加密

6、查看加密后的数据

直接下SQL查询加密后的数据,可以看到password的内容是一串不可以阅读的16进制的字符。

--查看加密后的数据

SELECT * FROM TBLUser

GO

sql server 怎么设置表中加密

7、解密数据

先打开证对称秘钥,再使用DecryptByKey函数解密数据,完成后关闭对称秘钥。具体代码如下:

--解密数据

OPEN SYMMETRIC KEY TestSymmetric DECRYPTION BY CERTIFICATE TestCert;

SELECT Name, CAST(DecryptByKey(password) as varchar(100)) Password FROM TBLUser;

CLOSE SYMMETRIC KEY TestSymmetric;

GO

sql server 怎么设置表中加密

  • SQL Server 2016怎么用
  • VMware虚拟机如何设置窗口自动适应客户机?
  • hyper-v管理器中关闭虚拟机状态出现 正在停止
  • 如何在命令行上编译 C++/CX 程序
  • ubuntu搜狗无法输入中文
  • 热门搜索
    怎么挽回老公 胃隐隐作痛怎么回事 ipad怎么下载微信 堵漏王怎么用 17岁怎么长高 苹果4s怎么下载软件 maroon5怎么读 母乳性黄疸怎么办 烫伤起泡怎么办 臭虫是怎么来的