一提到SQL Server证书,大家都会想到它是用来在传输数据的时候起到加密作用的,但是,如果您对SQL Server证书足够了解的话,你就会发现它的用处还有很多。

在MySQL数据库中,encode和decode函数可以通过自己设定的密钥来加密数据库的表的某些列来达到数据安全的目的。下面我就给大家讲讲SQL Server 证书怎么给数据加密

SQL Server 证书加密数据方法:

创建主密钥

以下是代码片段:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = "fengjicai"

用密码fengjicai创建证书boyi

以下是代码片段:
CREATE CERTIFICATE boyi
ENCRYPTION BY PASSWORD = "fengjicai"
WITH SUBJECT = "boyi55 test certificate",
start_date="02/08/2008",
EXPIRY_DATE = "02/08/2009";
GO

建测试表,name字段为要加密的列,数据类型要为varbinary

因为加密后的数据是二进制数据

以下是代码片段:
create table testB(id int identity(1,1),name varbinary(5000))

向测试表中写入一条测试数据

以下是代码片段:
insert into testB(name)
select encryptbycert(cert_id("boyi"),"boyi55")
/*

附:encryptbycert函数用法

EncryptByCert ( certificate_ID , { "cleartext" | @cleartext } )

certificate_ID

数据库中证书的 ID。

cleartext

将使用证书进行加密的数据字符串。

@cleartext

类型为 nvarchar、char、wchar、varchar 或 nchar 的变量,其中包含将使用证书的公钥进行加密的数据。

返回类型

Varbinary,最大大小为 8000 个字节。

*/

SQL Server 证书加密数据方法的优缺点:

优点:这种加密方法相对来说还是比较安全的,而且每次加密后的二进制数据也并不相同。

缺点:会消耗大量的资源,不适合在大数据量的环境下的部署。另外加密后的数据量相对较大,如果是加密内容过多的话,数据库的增长将会愈加明显。

小知识之SQL Server:

SQL Server 是Microsoft 公司推出的SQL Server 数据库管理系统,具有使用方便可伸缩性好与相关软件集成程度高等优点。