简介
加密是指通过使用密钥或密码对数据进行模糊处理的过程。在SQL Server中,加密并不能替代其他的安全设置,可以当数据库破解或是备份被盗取后的最后一道防线,通过加密,未经授权的人在没有密匙或密码的情况下所窃取的数据变成毫无意义。
什么是数据加密
加密是指通过使用密钥或密码对数据进行模糊处理的过程,如图:

加密算法的选择
SQL Server提供了比如:DES、Triple DES、TRIPLE_DES_3KEY、RC2、RC4、128 位 RC4、DESX、128 位 AES、192 位 AES 和 256 位 AES这些加密算法,没有某种算法能适应所有要求,每种算法都有长处和短处
加密
创建数据库主密钥

CREATE MASTER KEY ENCRYPTION BY PASSWORD ='Pa$$word'

创建证书

CREATE CERTIFICATE CertTest
with SUBJECT = 'Test Certificate'
GO


证书加密对称密钥

CREATE SYMMETRIC KEY SymmetricByCertWITH ALGORITHM = AES_256ENCRYPTION BY CERTIFICATE CertTest;
GO


SQL Server中的数据列加密(Column-level Encryption)
SQL Server在2005引入了列加密的功能。使得可以利用证书,对称密钥和非对称密钥对特定的列进行加密。在具体的实现上,根据加密解密的方式不同,内置了4对函数用于加密解密:
• EncryptByCert() 和DecryptByCert()—利用证书对数据进行加密和解密
• EncryptByAsymKey() and DecryptByAsymKey()—利用非对称密钥对数据进行加密和解密
EncryptByKey() and DecryptByKey()—利用对称密钥对数据进行加密和解密
• EncryptByPassphrase() and DecryptByPassphrase()—利用密码字段产生对称密钥对数据进行加密和解密

因此,加密数据列使用起来相对比较繁琐,需要程序在代码中显式的调用SQL Server内置的加密和解密函数,这需要额外的工作量,并且,加密或解密的列首先需要转换成Varbinary类型。

我们看下怎么给数据加密以及解密
首先看加密:

打开之前创建的由证书加密的对称密钥
OPEN SYMMETRIC KEY SymmetricByCert DECRYPTION BY CERTIFICATE CertTest;
------比如加密名字如下图 类型一定是Varbinary(500)
insert SYS_User(User_Name)
values(EncryptByKey(KEY_GUID('SymmetricByCert '), '789'))

此时加密列无法直接进行查看

select CONVERT(varchar(500), User_Name) from SYS_User


直接查询会显示二进制数

如何解密:

OPEN SYMMETRIC KEY SymmetricByCert DECRYPTION BY CERTIFICATE CertTest;SELECT CAST(DecryptByKey(User_Name) as varchar(100)) FROM SYS_User;CLOSE SYMMETRIC KEY SymmetricByCert;GO


非对称密匙这里不多说,原理都差不多

SQL server 数据加密相关推荐

  1. SQL Server 数据加密功能解析

    版权声明:本文由王甲坤原创文章,转载请注明出处:  文章原文链接:https://www.qcloud.com/community/article/194 来源:腾云阁 https://www.qcl ...

  2. SQL Server安全(8/11):数据加密(Data Encryption)

    在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切.但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念.这篇文章提供了基础,因此你可以对SQL Se ...

  3. aws rds 加密_AWS RDS SQL Server中的透明数据加密(TDE)

    aws rds 加密 In this article, we will review Transparent Data Encryption (TDE) in AWS RDS SQL Server. ...

  4. 透明加密tde_如何在SQL Server中配置透明数据加密(TDE)

    透明加密tde 简介与概述 (Introduction and Overview) Transparent Data Encryption (TDE) was introduced in SQL Se ...

  5. 透明加密tde_如何在SQL Server中监视和管理透明数据加密(TDE)

    透明加密tde Transparent Data Encryption (TDE) was originally introduced in SQL Server 2008 (Enterprise E ...

  6. sql server 加密_SQL Server始终被加密,以适合您的环境进行敏感数据加密

    sql server 加密 So, your manager wants you to figure out how to encrypt sensitive Data? Well, Microsof ...

  7. SQL Server 2008 新增的透明数据加密功能(TDE)

    在任何组织中,安全都是备受关注的.数据库备份很可能会被盗,并且可以在任何等同于或高于备份数据库版本的SQL Server实例下进行还原.当我们查看SQL Server 2008新功能时,我们发现一个可 ...

  8. mysql 加密 tde_[SQL Server] 利用透明数据加密(TDE)对整个数据库加密

    using TDE encrypt SQL Database 前言 最近客户有需求想避免数据库(.mdf..ldf)被偷走时,数据外泄流出 刚好SQL Server的TDE加密功能满符合需求. TDE ...

  9. 微软服务器sql server,解析:微软SQL Server 2008特性和功能

    导语:SQL Server 2008系统诞生于08年3月13日,在微软2008新一代企业应用平台与开发技术发布大会上,微软宣布向企业用户大众同时发布三款核心应用平台产品:Windows Server ...

  10. SQL Server 镜像构建

    SQL Server 2005 镜像构建 一.镜像简介 1.1 简介 数据库镜像是将数据库事务处理从一个SQL Server数据库移动到不同SQL Server环境中的另一个SQL  Server数据 ...

最新文章

  1. Wijmo 更优美的jQuery UI部件集:通过jsFiddle测试Wijmo Gauges
  2. OpenFiler 配置iscsi共享式存储
  3. OSPF两种组播地址的区别和联系
  4. gsonformat插件_吐血推荐珍藏的IDEA插件
  5. c++中的explicit关键字及隐式类型转换
  6. B2C多用户商城系统源码
  7. 卡西欧手表城市编码,调时区用
  8. MapReduce作业2
  9. 计算机是uefi启动 不能装win7,uefi+gpt分区安装win7图文教程 uefi加gpt模式安装win7 64位的方法...
  10. 币圈IDO与ICO/IPO的区别和联系
  11. server can't find test.com: SERVFAIL
  12. 永久免费建站-个人博客开发
  13. python地理处理包——Shapely介绍及用户手册
  14. Android 10 状态栏通知图标和下拉状态栏图标为白色问题
  15. VUE解决IE不能用的方法
  16. frangi黑森矩阵_消灭黑森臭虫
  17. C语言实现位数组(bit数组)与位数组的简单应用举例
  18. SpyNote的APK无法运行的问题
  19. nginx 反向代理和正向代理区别
  20. 一文带你了解200G DAC高速线缆

热门文章

  1. 删除本地.svn文件
  2. EDA技术实用教程 | 复习六 | 过程语句always
  3. windows whistler系统安装
  4. Linux开发环境——tftp服务器的搭建
  5. c语言给定n个矩形及其长和宽,七年级数学秋季学期期末考试试题
  6. linux远程映射usb设备,Linux 系统下USB端口映射
  7. 数字信号处理实验(一)
  8. 华为荣耀手机指令代码大全_华为手机指令代码大全
  9. c语言用程序判断是否素数,用C语言编写判断一个数是否是素数的程序
  10. 如何解决样本不均衡问题