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网别的相干文章!