SQL Server 安全篇——SQL Server加密(2)——加密数据

本文属于SQL Server安全专题系列


    在SQL SERVER中的数据可以使用密码或者证书来加密。本文分别来演示一下使用密码和证书来加密。


使用密码或短语(passphrase)加密数据

    在SQL Server中最常见的数据加密函数是ENCRYPTBPASSPHRASE()。这个函数可以使用密码或者短语直接对数据加密而不需要经过SQL Server的加密层次体系。下面使用AdventureWorks2016的Sales.CreditCard表进行演示。从名字可以看出这个表是存储信用卡信息。如果打开表,可以看到还是明文存储,这种安全性明显是不足的。注意:如果读者根据前面章节实操下来,会发现在SQL Server 安全篇——安全元数据(4)——加密(Ecryption)元数据中对这个表的数据进行了AE(Always Encrypted),这里要先去掉:


或使用脚本:

USE AdventureWorks2016 
GO 
ALTER TABLE Sales.CreditCard    
ALTER COLUMN CardNumber DROP MASKED ;  

下面查看原文可以发现如下图的内容:


要加密这个列,需要进行以下步骤:

  • 创建一个varbinary类型的新列
  • 加密CardNumber列并插入数据到新列。
  • Drop掉原列(CardNumber)
  • 更新代码让其使用新的列。

Step 1:创建新列

首先,注意数据类型为varbinary,其次,由于一开始并没有值,也没有默认值,所以在加列时注意不要使用NOT NULL。

USE AdventureWorks2016 
GO 
ALTER TABLE Sales.CreditCard ADD 
CardNumberEncrypted varbinary(8000) NULL ; 


Step 2:加密并插入数据<

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值