旗下导航:搜·么
当前位置:网站首页 > MySQL教程 > 正文

sql怎样加密表【MySQL教程】,sql加密

作者:搜教程发布时间:2019-12-01分类:MySQL教程浏览:65评论:0


导读:sql加密表的要领是:起首测试环境然后再建立数据库主密钥,以后建立证书以及建立一个对称秘钥,末了加密数据。sqlserver怎样设置表中加密SQLServer支撑...

sql加密表的要领是:起首测试环境然后再建立数据库主密钥,以后建立证书以及建立一个对称秘钥,末了加密数据。

sql server 怎样设置表中加密

SQL Server支撑数据库级的加密(TDE)和列级的数据加密,数据库级的加密是在在数据库中举行的,对顺序来讲是是通明的,开辟历程当中不需要做分外的操纵。相对数据库级的加密来讲,列级的数据加密历程有点贫苦,顺序需要做一些分外的操纵。下图是SQL Server的加密条理构造,能够看出SQL Server的加密是分层级的,上面层级的加密庇护其子层级的加密,本文申明一个运用图中①②③④四个条理的要领来加密/解密数据的历程。

(1)测试环境申明

测试运用SQL Servre 2012 R2,建立以下的数据表:

--建立测试用的用户表

CREATE TABLE TBLUser 
(    
    Name             nvarchar(30),     
    Password         varbinary(1000),    
)
GO

(2)建立数据库主密钥

数据库主密钥(Database Master Key)在效劳主密钥之下,由效劳主密钥举行加密。这是一个数据库级别的密钥,能够用于为建立数据库级别的证书或非对称密钥供应加密。每个数据库只能有一个数据库主密钥,经由过程T-SQL语句建立。细致代码以下:

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

(3)建立证书

建立一个用来加密对称秘钥证书,细致代码以下:

CREATE CERTIFICATE TestCert with SUBJECT = 'Test Certificate'
GO

(4)建立一个对称秘钥

由SQL Server加密条理构造能够看出,对称密钥能够经由过程暗码建立,也能够经由过程别的对称密钥、非对称密钥和证书建立。本文以证书建立一个测试用的对称秘钥,细致代码以下:

CREATE SYMMETRIC KEY TestSymmetric WITH ALGORITHM = AES_256
 ENCRYPTION BY CERTIFICATE TestCert 
GO

(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

(6)检察加密后的数据

直接下SQL查询加密后的数据,能够看到password的内容是一串不能够浏览的16进制的字符。

SELECT * FROM TBLUser
GO

(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怎样加密表的细致内容,更多请关注ki4网别的相干文章!

标签:sql加密


欢迎 发表评论: