一、概述

加密是生龙活虎种安全措施,一时候以至是准绳必要。作为夺取Windows系统的结尾生龙活虎道防线,通过加密能够确定保证在未曾密钥的动静下获得备份大概物理介质变得毫无意义。

 

My Sql 超越四分之意气风发都是用花青版(解压版) 然后注册服务 轻易方便。

豆蔻梢头数据库服务器(SQL Server
二〇一六)上的一个学业施行报错,具体错误音信如下:

二、概念

加密档次结构

澳门微尼斯人手机版 1

加密档期的顺序结构的每风流倜傥层是怎么着对它上边包车型地铁大器晚成层开展加密的,何况呈现了最常用的加密配置。对等级次序结构的开始开展的探问平时受密码珍视。SQL
Server
用分层加密和密钥管理基础结构来加密数据。每后生可畏层都利用证书、非对称密钥和对称密钥的结合对它下边包车型大巴后生可畏层开展加密。非对称密钥和对称密钥能够积存在
SQL Server 之外的可扩大密钥管理 (EKM) 模块中。

注意:

  • 为了获得最棒性能,使用对称密钥(并不是证书或非对称密钥)加密数码。

  • 数据库主密钥受服务主密钥爱戴。 服务主密钥由 SQL Server 安装程序创设,而且利用 Windows
    数据爱惜 API (DPAPI) 实行加密。

  • 积聚其余层的别样加密档期的顺序结构是恐怕的。

  • 可扩充密钥管理 (EKM)
    模块将对称密钥或非对称密钥保存在 SQL Server 的外表。

  • 晶莹剔透数据加密
    (TDE) 必需选拔称为数据库加密密钥的博采有益的意见密钥,该密钥受由 master
    数据库的数据库主密钥爱抚的证书爱惜,可能受仓库储存在 EKM
    中的非对称密钥尊敬。

  • 劳动主密钥和富有数据库主密钥是对称密钥。

唯独。配置文件发烧的大器晚成逼。

 

1.劳务主密钥(Service Master Key)

每八个实例唯有三个劳动主密钥,服务主密钥用于加密数据库主密钥,服务主密钥为
SQL Server
加密档期的顺序结构的根。服务主密钥是第壹次索要它来加密别的密钥时自动生成的。暗许情形下,服务主密钥使用
Windows 数据珍视 API 和地点计算机密钥实行加密。独有创设服务主密钥的
Windows
服务帐户或有权访问服务帐户名称和密码的宗旨可以开荒服务主密钥。

---备份服务主密钥
BACKUP SERVICE MASTER KEY TO FILE = 'D:\DECRYPTION\ServerMasterKey' 
    ENCRYPTION BY PASSWORD = 'password'

----还原服务主密钥
RESTORE SERVICE MASTER KEY FROM FILE = 'D:\DECRYPTION\ServerMasterKey'
    DECRYPTION BY PASSWORD = 'password' 
    [FORCE];   ----即使存在数据丢失的风险,也要强制替换服务主密钥。

注意:
1.劳动主密钥直接或直接地珍惜树中的全部别的密钥。假如在威逼的回复进度中不能对有些相关密钥举行解密,则由该密钥所保养的数据便会甩掉。
2.双重生成加密档期的顺序结构是豆蔻年华种消耗多量财富的操作。您应该将该操作安顿在财富须要相当低的时节进行。
3.当回复服务主密钥时,SQL Server
将对富有已选取当前服务主密钥加密的密钥和隐衷内容张开解密,然后接受从备份文件中加载的劳动主密钥对那几个密钥和神秘内容开展加密。

第风流洒脱配置mysql的境况变量。

Executed as user: NT SERVICE\SQLSERVERAGENT. 用户 ‘xxxx\xxxxx$’
登入失利。 [SQLSTATE 28000] (Error 18456). The step failed.

2.数据库主密钥

数据库主密钥制造于对应数据库下,具体的保卫安全指标足以参见下面包车型大巴数据库范围的平安指标。假设要对数据库备份大概透明数据库加密那么供给将劳动主密钥创制于Master数据库下。

----1.创建数据库主密钥
USE [master]
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'MasterKey'
---2.删除数据库主密钥
DROP MASTER KEY

---3.备份数据库主密钥
/*
主密钥必须为打开状态,因此在备份主密钥之前应对其进行解密。如果主密钥使用服务主密钥进行加密,则不必显式打开。但如果主密钥仅使用密码进行加密,则必须显式打开。
建议在创建主密钥之后立即对其进行备份,并存储于另外一个安全的位置中。
*/

OPEN MASTER KEY DECRYPTION BY PASSWORD = 'MasterKey'; ---打开数据库主密钥,这里的密码为创建主密钥时设的密码
BACKUP MASTER KEY TO FILE = 'D:\DECRYPTION\MasterKey' -----主密钥私钥文件
    ENCRYPTION BY PASSWORD = 'MasterKey';             -----加密主密钥私钥文件
GO 
---4.还原数据库主密钥
/*
还原主密钥之后,SQL Server 会对使用当前活动的主密钥加密的所有密钥进行解密,然后使用还原后的主密钥对这些密钥进行加密。这种大量消耗资源的操作应当安排在资源需求较低的时段执行。如果当前的数据库主密钥未打开或无法打开,或者无法对任何使用该主密钥加密的密钥进行解密,则还原操作将失败。
如果当前数据库中没有主密钥,则 RESTORE MASTER KEY 将创建一个主密钥。新的主密钥不会自动使用服务主密钥进行加密。
请仅在主密钥无法恢复或解密失败时,才使用 FORCE 选项。仅由不可恢复密钥加密的信息将会丢失。
如果主密钥通过服务主密钥进行加密,则还原后的主密钥也通过该服务主密钥进行加密(当前服务器)。
*/
RESTORE MASTER KEY  
FROM FILE = 'C:\DECRYPTION\MasterKey' 
DECRYPTION BY PASSWORD = N'MasterKey'  
ENCRYPTION BY PASSWORD = 'MasterKey123'  ---加密导出的主密钥
--force;        ----指定即使当前数据库主密钥未打开,或者 SQL Server 无法对使用该主密钥加密的某些私钥进行解密,RESTORE 过程也应继续执行。
GO 

---5.打开数据库主密钥
OPEN MASTER KEY DECRYPTION BY PASSWORD = N'MasterKey123'  

GO

注意:

1.数据库主密钥是指用于维护证书私钥的对称密钥以致数据库中存在的非对称密钥。当创立主密钥时,会利用
Triple DES 算法以致顾客提供的密码对其进展加密。
2.请使用服务主密钥对该主密钥的别本举行加密,并将别本存款和储蓄在数据库和
master 中。经常,每当主密钥改良时,便会在不开展提醒的境况下更新存款和储蓄在
master 中的别本。
3.在现阶段服务器下创办的数据库主密钥默许就动用了服务主密钥加密和自行解密,不必选拔OPEN MASTE哈弗 KEY
语句。要是苏醒到了新的服务器那么服务主密钥则空头支票.必须接收 OPEN MASTE凯雷德KEY 语句解密数据库主密钥。意气风发旦数据库主密钥解密后,通过运用 ALTE奥迪Q7 MASTE汉兰达KEY
语句向服务器提供数据库主密钥(使用劳务主密钥加密)的别本,就可以拥有今后启用自动解密的选项。
4.由此选拔带 DROP ENC福睿斯YPTION BY SE传祺VICE MASTE索罗德 KEY 选项的 ALTE中华V MASTEKugaKEY
语句,可从机关密钥管理中肃清特定数据库的数据库主密钥。然后,必得显式展开带密码的数据库主密钥。
5.数据库主密钥使用公钥对证件、非对称密钥进行加密,使用私钥举办解密,假如在脚下创制的服务器上私下认可自动解密,倘若复苏到一台新的劳务上时只怕须要运用OPEN
MASTE奥迪Q5 KEY实行解密。

mySQL 景况变量(小编的微管理器-右击属性-高等-境遇变量)

 

3.证书

 证书使用公钥对平安目的开展加密,使用私钥举行解密,默许证书存在就自动解密。

----1.创建自我签名的证书,使用数据库主密钥进行加密证书
USE MASTER;
GO
CREATE CERTIFICATE MyCerts 
   WITH SUBJECT = 'BackDB Records', 
   EXPIRY_DATE = '10/31/2099';            ----证书过期时间,不指定开始时间默认开始时间为当前时间
GO

---使用密码进行加密证书
USE MASTER;
GO
CREATE CERTIFICATE CertsByPW 
   ENCRYPTION BY PASSWORD = 'CertsByPW111'
   WITH SUBJECT = 'BackDB Records', 
   EXPIRY_DATE = '10/31/2099';            ----证书过期时间,不指定开始时间默认开始时间为当前时间
GO

----2.备份证书
----警告: 用于对数据库加密密钥进行加密的证书尚未备份。应当立即备份该证书以及与该证书关联的私钥。如果该证书不可用,或者您必须在另一台服务器上还原或附加数据库,则必须对该证书和私钥均进行备份,否则将无法打开该数据库。
BACKUP CERTIFICATE MyCerts TO FILE = 'D:\DECRYPTION\MyCerts' ----证书文件
    WITH PRIVATE KEY ( FILE = 'D:\DECRYPTION\MyCertsKey' ,   ----证书私钥文件
                       ENCRYPTION BY PASSWORD = 'MyCerts123' ); ----对私钥文件加密
GO

---备份使用私钥进行加密的证书,必须先对私钥进行解密
BACKUP CERTIFICATE CertsByPW TO FILE = 'D:\DECRYPTION\MyCerts' ----证书文件
    WITH PRIVATE KEY ( DECRYPTION BY PASSWORD = 'CertsByPW111',----解密证书
                       FILE = 'D:\DECRYPTION\MyCertsKey' ,   ----证书私钥文件
                       ENCRYPTION BY PASSWORD = 'MyCerts123' ); ----对私钥文件加密
GO

----3.通过备份文件创建证书,还原证书,
CREATE CERTIFICATE MyCerts FROM FILE = 'C:\DECRYPTION\MyCerts' ----证书文件
    WITH PRIVATE KEY ( FILE = 'C:\DECRYPTION\MyCertsKey' ,    ----证书私钥文件
    DECRYPTION BY PASSWORD = 'MyCerts123' );                  ----解密私钥文件


---4.删除证书
DROP CERTIFICATE MyCerts 

注意:

当使用数据库主密钥对私钥举办加密时,无需 ENCXC60YPTION BY PASSWO科雷傲D 选项。

除非在动用密码对私钥进行加密时,才使用该选项。

借使未钦点密码,则利用数据库主密钥对证件的私钥进行加密。
假设数据库主密钥无法张开,则省略该子句会招致错误。

MYSQL_HOME(解压路线):E:\MYSQL\mysql-5.6.23-winx64

澳门微尼斯人手机版 2

4.非对称密钥

“非对称密钥”是数量库级的平安目的实体。该实体的暗许格式包括公钥和私钥。当未使用
FROM 子句施行时,CREATE ASYMMETKoleosIC KEY 会生成新的密钥对。当使用 FROM
子句实践时,CREATE ASYMMETHighlanderIC KEY
会从文件中导入密钥对,或从程序集中导入公钥。
默许情形下,私钥受数据库主密钥爱抚。若无成立任何数据库主密钥,则需求运用密码尊崇私钥。假若子虚乌有数据库主密钥,则能够选拔性地接收密码。

常见选取OdysseySA加密算法,锐界SA_512、RSA_1024、RSA_2048。

---1.创建非对称密钥;非对称密钥可以由密码、数据库主密钥、EKM模块加密
--使用密码加密
CREATE ASYMMETRIC KEY AsymmetricByPW
    WITH ALGORITHM = RSA_2048   ---使用RSA_2048加密算法
    ENCRYPTION BY PASSWORD = 'AsymmetricByPW111'; 
GO
--2.通过文件创建非对称密钥
CREATE ASYMMETRIC KEY AsymmetricByFile 
    AUTHORIZATION Christina ----授予Christina用户使用该非对称密钥
    FROM FILE = 'c:\PacSales\Managers\ChristinaCerts.tmp'  
    ENCRYPTION BY PASSWORD = 'AsymmetricByFile111';
GO
---3.使用数据库主密钥加密
CREATE ASYMMETRIC KEY AsymmetricByMasterKey
    WITH ALGORITHM = RSA_2048;   ---使用RSA_2048加密算法

---4.删除非对称密钥
DROP ASYMMETRIC KEY AsymmetricByPW
GO

path:在结尾面增加 ;%MYSQL_HOME%\bin 注意分号

 

5.对称密钥

创制对称密钥时,必得最少使用以下项之一来对该对称密钥进行加密:证书、密码、对称密钥、非对称密钥或
PROVIDE翼虎。可使用上述每种类型中的多项对密钥进行加密。换言之,能够同一时候选用多少个证书、密码、对称密钥以至非对称密钥对单个对称密钥实行加密

日常采取AES算法,有AES_128、AES_192、AES_256

 

--1.创建对称密钥,对称密钥可以由密码、非对称密钥、对称密钥、EKM模块加密
---使用密码加密
CREATE SYMMETRIC KEY SymmetricByPW
    WITH ALGORITHM = AES_256
    ENCRYPTION BY PASSWORD = 'SymmetricByPW111';
GO
--注意:当使用密码(而不是数据库主密钥的公钥)对对称密钥进行加密时,便会使用 TRIPLE DES 加密算法。因此,用强加密算法(如 AES)创建的密钥本身受较弱算法的保护。
---2.使用证书加密
CREATE SYMMETRIC KEY SymmetricByCert
    WITH ALGORITHM = AES_256
    ENCRYPTION BY CERTIFICATE MyCerts;

---3.删除非对称密钥
DROP SYMMETRIC KEY TestSymmetric
GO

不加情形变量CMD时会提醒不是中间外界命令。

内部客商 ‘xxxx\xxxxx$’,反斜杠前边是域名,后边为Computer名称+$,
其实那是二个伪造账号。
即当地系统帐户不持有网络的别的访谈权限。当须要拜候互联网时,本地系统选取帐户
Domain\computername$ 。具体参谋至于 Configuration Manager
中的本地系统帐户/Computer$。

三、安全目的

康宁指标是 SQL Server
数据库引擎授权系统调节对其进展访问的能源。通过创制可感觉投机设置安全性的名叫“范围”的嵌套档案的次序结构,能够将有些安全目的蕴涵在其余安全指标中。安全目的节制有服务器、数据库和架构。

楼主用的。5.6.23版本。

 

1.安然照旧目的限定:服务器

包含以下安全指标:

  • 端点
  • 登入帐户
  • 数据库

my-default.ini内容如下

开局看见这几个荒谬,有一点点茫然不解然,并不明了是何许具体原因产生,那么就去反省作业施行的累积进度,发掘当中使用链接服务器(LINKED
SE途胜VE奔驰G级),由于那几个张冠李戴提示是地面系统账号访问网络的权位难题,所以作者特意去链接服务器(LINKED
SE福睿斯VE奥德赛)所针没错数据库服务器,结果在长久以来时间点也身不由己了一个错误音讯,其实正是该学业链接过来时发生的新闻。

2.改变局面目的范围:数据库

蕴含以下安全指标:

  • 用户
  • 角色
  • 应用程序角色
  • 程序集
  • 消息类型
  • 路由
  • 服务
  • 远程服务绑定
  • 全文目录
  • 证书
  • 非对称密钥
  • 对称密钥
  • 约定
  • 架构

[mysqld]
#skip-grant-tables
那么些能够在root密码忘记的图景下登陆mysql安全性超级低。

Message

3.逢凶化吉目的节制:架构

含有以下安全目的:

  • 类型
  • XML 框架结构集结
  • 对象

#端口
port=3306

Login failed for user ‘xxx\xxxx$’. 原因:
基于令牌的服务器访问验证退步,现身基础结构错误。请检查以前的荒唐。
[客户端: 192.168.xxx.xxx]

对象

上面是对象类的分子:

    • 聚合
    • 澳门微尼斯人手机版,约束
    • 函数
    • 过程
    • 队列
    • 计算音讯
    • 同义词
    • 视图  

#有些版本情状下default-character-set=utf8
能一蹴即至汉语乱码的主题材料

 

四、案例 

#此地实际不是用default-character-set=utf8
会直接报1067谬误

澳门微尼斯人手机版 3

案例1.备份加密

 通过利用证书加密备份,借使供给在新的服务器上苏醒备份,先还原数据库主密钥和注脚,然后就能够活动解密还原备份。

--1.备份数据库主密钥
BACKUP MASTER KEY TO FILE = 'D:\DECRYPTION\MasterKey' -----主密钥私钥文件
    ENCRYPTION BY PASSWORD = 'MasterKey';             -----加密主密钥私钥文件
GO 
--2.备份证书
BACKUP CERTIFICATE MyCerts TO FILE = 'D:\DECRYPTION\MyCerts' ----证书文件
    WITH PRIVATE KEY ( FILE = 'D:\DECRYPTION\MyCertsKey' ,   ----证书私钥文件
                       ENCRYPTION BY PASSWORD = 'MyCerts123' ); ----对私钥文件加密
GO

--3.备份数据库
USE MASTER
GO
BACKUP DATABASE [EncryDb]    
TO DISK = N'D:\BackDB\EncryDb.bak'    
WITH  COMPRESSION, stats = 10,   
    ENCRYPTION     
    (    
    ALGORITHM = AES_256,  
    SERVER CERTIFICATE = MyCerts
    )  
GO 
---4.在新服务器上还原数据库主密钥
USE MASTER
GO
RESTORE MASTER KEY  
FROM FILE = 'C:\DECRYPTION\MasterKey' 
DECRYPTION BY PASSWORD = N'MasterKey'    ---解密主密钥文件
ENCRYPTION BY PASSWORD = N'MasterKey123'  ---加密导出的主密钥
--force;        ----指定即使当前数据库主密钥未打开,或者 SQL Server 无法对使用该主密钥加密的某些私钥进行解密,RESTORE 过程也应继续执行。
GO 
---5.在新服务器上还原证书
USE MASTER
GO
---需要先打开数据库主密钥
OPEN MASTER KEY DECRYPTION BY PASSWORD = N'MasterKey123'  
GO 
CREATE CERTIFICATE MyCerts FROM FILE = 'C:\DECRYPTION\MyCerts' ----证书文件
    WITH PRIVATE KEY ( FILE = 'C:\DECRYPTION\MyCertsKey' ,    ----证书私钥文件
    DECRYPTION BY PASSWORD = 'MyCerts123' );                  ----解密私钥文件

---6.在新服务器上还原数据库
USE [master]  
GO  
OPEN MASTER KEY DECRYPTION BY PASSWORD = N'MasterKey123'  
GO 
RESTORE DATABASE [EncryDb]  
FROM  DISK = N'C:\DECRYPTION\EncryDb.bak'   
WITH  FILE = 1,  
MOVE N'EncryDb' TO N'C:\DECRYPTION\EncryDb.mdf',     
MOVE N'EncryDb_log' TO N'C:\DECRYPTION\EncryDb_log.ldf',    
NOUNLOAD,  STATS = 5  
GO 

只顾:在master数据库中开创数据库主密钥和证件。

假若未有过来数据库主密钥和证件间接回复数据库报错如下

澳门微尼斯人手机版 4

character-set-server=utf8

 

案例2.TDE透明数据库加密

 通过使用证书加密数据库

 澳门微尼斯人手机版 5

步骤操作如下:

  • 成立主密钥
  • 始建或获得由主密钥爱慕的证件
  • 创制数据库加密密钥并经过此证书保护该密钥
  • 将数据库设置为利用加密

    USE EncryDb;
    GO
    CREATE DATABASE ENCRYPTION KEY
    WITH ALGORITHM = AES_128
    ENCEscortYPTION BY SEEscortVE索罗德 CERTIFICATE MyCerts;
    GO
    USE EncryDb;
    GO
    —启用数据库加密
    ALTEEvoque DATABASE EncryDb
    SET ENC福睿斯YPTION ON;
    GO
    USE EncryDb;
    GO
    —禁止使用数据库加密
    ALTE奇骏 DATABASE EncryDb
    SET ENCRAV4YPTION OFF;
    GO

1.“透明数据加密”(TDE) 可对数据和日志文件举办实时 I/O
加密和解密。这种加密应用数据库加密密钥
(DEK),该密钥存款和储蓄在数据库教导记录中以供复苏时使用。DEK
是应用存款和储蓄在服务器的 master 数据库中的证书爱护的博采众长密钥,也许是由 EKM
模块爱惜的非对称密钥。TDE
体贴“处于休眠状态”的多少,即数据和日志文件。它提供了遵守大多王法、准绳和生龙活虎生机勃勃行当起家的守则的技术。软件开辟职员籍此尚可AES 和 3DES 加密算法来加密数量,且不必要退换现成的应用程序。
2.启用 TDE
时,应该马上备份证书和与证件相关联的私钥。假诺注脚变为不可用,可能只要非得在另豆蔻梢头台服务器上回复或附加数据库,则必需同不常候具有注脚和私钥的备份,不然将无法开发该数据库。纵然不再对数据库启用
TDE,也相应保留加密证书或非对称密钥。纵然数据库未有加密,数据库加密密钥恐怕也保留在数据库中,实践有个别操作时大概须求拜望这个加密密钥。
3.数据库文件的加密在页级试行。已加密数据库中的页在写入磁盘从前会进展加密,在读入内存时会开展解密。TDE
不会追加已加密数据库的大大小小。

在乎:在master数据库中开创数据库主密钥和证件。

测量试验在新的数据库中还原TDE透明加密数据库

---备份数据库
USE MASTER
GO
BACKUP DATABASE [EncryDb]    
TO DISK = N'C:\DECRYPTION\EncryDb0122.bak'    
WITH  COMPRESSION, stats = 10  

---在新服务器中还原数据库主密钥
USE MASTER
GO
RESTORE MASTER KEY  
FROM FILE = 'C:\DECRYPTION\MasterKey' 
DECRYPTION BY PASSWORD = N'MasterKey'    ---解密主密钥文件
ENCRYPTION BY PASSWORD = N'MasterKey123'  ---加密导出的主密钥
--force;        ----指定即使当前数据库主密钥未打开,或者 SQL Server 无法对使用该主密钥加密的某些私钥进行解密,RESTORE 过程也应继续执行。
GO 
---在新服务器上还原证书
USE MASTER
GO
---需要先打开数据库主密钥
OPEN MASTER KEY DECRYPTION BY PASSWORD = N'MasterKey123'  
GO 
CREATE CERTIFICATE MyCerts FROM FILE = 'C:\DECRYPTION\MyCerts' ----证书文件
    WITH PRIVATE KEY ( FILE = 'C:\DECRYPTION\MyCertsKey' ,    ----证书私钥文件
    DECRYPTION BY PASSWORD = 'MyCerts123' );                  ----解密私钥文件


---还原备份
USE [master]  
GO  
OPEN MASTER KEY DECRYPTION BY PASSWORD = N'MasterKey123'  
GO 
RESTORE DATABASE [EncryDb_20180122]  
FROM  DISK = N'C:\DECRYPTION\EncryDb0122.bak'   
WITH  FILE = 1,  
MOVE N'EncryDb' TO N'C:\DECRYPTION\EncryDb0122.mdf',     
MOVE N'EncryDb_log' TO N'C:\DECRYPTION\EncryDb0122_log.ldf',    
NOUNLOAD,  STATS = 5  
GO 

在意:经测量检验开掘独有同数据库版本可以回复成功,在搞版本中平复提示会提示错误页,比方二〇一四版本加密的数据库在二〇一四版本中还原保持如下:

澳门微尼斯人手机版 6

 

反省该链接服务器(LINKED
SE奥迪Q7VEEvoque)开掘该链接服务器使用的是“使用登入名的当前平安上下文创建连接”(Be
made using the login’s current security context)

案例3.仓库储存进程加密

在AS前扩充WITH ENCOdysseyYPTION加密选项就能够

USE EncryDb;
GO
CREATE PROCEDURE Sptest
WITH ENCRYPTION ---加密选项
AS
BEGIN


END

注意:
1.加密前先保留存款和储蓄副本,不然加密完再要求解密就很艰苦
2.加密过的存款和储蓄进度不影响校订、删除,不过无能为力查看存款和储蓄进度的概念比如:sp_helptext、生成create语句、生成alter语句等。

#留意这么些一定要加不加client database
results 都以GBK或latin1

 

案例4.数据列加密

CREATE DATABASE TestDb
GO
USE [TestDb]
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'MasterKey'
GO
---创建证书
CREATE CERTIFICATE MyCerts 
   WITH SUBJECT = 'BackDB Records', 
   EXPIRY_DATE = '10/31/2099';            ----证书过期时间,不指定开始时间默认开始时间为当前时间
GO
----创建对称密钥
CREATE SYMMETRIC KEY SymmetricByCert
    WITH ALGORITHM = AES_256
    ENCRYPTION BY CERTIFICATE MyCerts;

----创建测试表
USE TestDb;
GO
DROP TABLE Test
GO
CREATE TABLE Test
(Id INT NOT NULL,
Name NVARCHAR(30) NOT NULL,
EncryptionName varbinary(500) null
);
GO
INSERT INTO Test(Id,Name) VALUES(1,'aa'),(2,'bb');
GO

----加密列
OPEN SYMMETRIC KEY SymmetricByCert 
     DECRYPTION BY CERTIFICATE MyCerts;  
UPDATE Test
SET EncryptionName= EncryptByKey(Key_GUID('SymmetricByCert'), Name);  
GO

SELECT * FROM TEST

GO
---解密查询
OPEN SYMMETRIC KEY SymmetricByCert 
     DECRYPTION BY CERTIFICATE MyCerts;  
select Id,
Name,
EncryptionName,
convert(nvarchar(30), DecryptByKey(EncryptionName)) ConvertEncryptionName  ----nvarchar(30)值和明文字段类型长度保持一致 
from test;

澳门微尼斯人手机版 7

注意:

1.加密列的数据类型必需是nvarchar数据类型,不然解密后的结果不会和当素不相识龙活虎致。

2.解密进度定义的数据类型须要和当面包车型客车数据类型保持生机勃勃致,包含长度也必须要黄金时代律。

 

 

 

公钥和私钥的演讲参照:http://blog.csdn.net/tanyujing/article/details/17348321

加密参考:

动用对称密钥加密数据:

 

 

 

备注:

    作者:pursuer.chen

    博客:http://www.cnblogs.com/chenmh

本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接,否则保留追究责任的权利。

《欢迎交流讨论》

 

init_connect=’SET NAMES utf8′ 

澳门微尼斯人手机版 8

#show variables like ‘char%’;
查看数据库编码集

 

#数据仓库储存储引擎
有些版本 default-storage-engine=MyISAM才会正常运转不然会报1067 

由于是学业调用该存储进程,那么该学业试行到调用链接服务器部分SQL时,使用的正是开发银行SQL
Agent服务的登陆名来创建安全上下文, 如下所示,SQL
Agent服务的开发银行账号为NT Service\SQLSE汉兰达VERAGENT, 而链接服务器(LINKED
SE奥迪Q7VECR-V)所指的数据库服务器,运营SQL
Agent服务的记名名称叫一个域账号,很鲜明那时链接服务器就能够遇到权限难题。其实正是近期订正了那台服务器的SQL
Agent服务的记名名所导致。SQL Agent服务本来是三个域账号运维的。

default-storage-engine=INNODB

 

#设置basedir指向mysql的安装路线
basedir=E:\MYSQL\mysql-5.6.23-winx64
datadir=E:\MYSQL\mysql-5.6.23-winx64\data

澳门微尼斯人手机版 9

[client]
default-character-set=utf8
#password =1234
port=3306

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注