SQL Server数据库如何正确加密?

SQL Server数据库如何正确加密?,第1张

数据被存储时候被加密,它们被使用的时候就会自动加密。在其他的情况下,你可以选择数据是否要被加密。SQL Server数据库可以加密下列这些组件:密码存储过程,视图,触发器,用户自定义函数,默认值,和规则。

在服务器和用户之间传输的数据密码加密SQL Server自动将你分配给登陆和应用角色的密码加密。尽管当你可以从主数据库中直接察看系统表格而不需要密码。你不能给对这种情况作出任何修改,事实上,你根本不能破坏它。

定义加密在有些时候,如果对对象进行加密是防止将一些信息分享给他人。例如,一个存储进程可能包含所有者的商业信息,但是这个信息不能和让其他的人看到,即使他们公开的系统表格并可以看到对象的定义。这就是为什么SQL Server数据库允许你在创建一个对象的时候进行加密。为了加密一个存储进程,使用下面形式的CREAT PROCEDURE 语句:

CREATEPROCEDUREprocedurename[number]

[@parameterdatatype

[VARYING][=defaultvalue][OUTPUT]]

[,]

[WITHRECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION]

我们关心的仅仅是可选的WITH参数。你可以详细说明ARECOMPILE或者ENCRYPTION,或者你可以同时说明它们。ENCRYPTION关键字保护SQL Server数据库它不被公开在进程中。结果,如果ENCRYPTION在激活的时候系统存储进程sp_helptext就会被忽视,这个存储进程将被存储在用户创建进程的文本中。

如果你不想要加密,你可以使用ALTER PROCEDURE,忽略WITH ENCRYPTION子句来重新创建一个进程。

为了能够使用加密。用户和服务器都应该使用TCP/IP NetworkLibraries用来连接。运行适当的Network Utility和检查Force protocol encryption,看下表,用户和服务器之间的连接将不会被加密。

加密也不能完全自由。当连接确定后源码天空

,要继续其他的构造,并且用户和服务器必须运行代码来解释加密和解释的包裹。这里将需要一些开销并且当在编译码的时候会使进程慢下来。

对sql中的数据进行加密,有5种方法,

1、利用CONVERT改变编码方式:

利用该函数把文字或数据转换成VARBINARY。但该方式不具备保护数据的能力,仅避免浏览数据的过程中能直接看到敏感数据的作用。

2、利用对称密钥:

搭配EncryptByKey进行数据加密。使用DecryptByKey函数进行解密。这种方式比较适合大数据量。因为对称密钥的过程耗用资源较少。

3、利用非对称密钥:

搭配EncryptByAsymKey进行数据加密。使用DecryptByAsymKey函数进行解密。用于更高安全级别的加解密数据。因为耗用资源叫多。

4、利用凭证的方式:

搭配EncryptByCert进行加密和DecryptByCert函数进行解密。比较类似非对称密钥。

5、利用密码短语方式:

搭配EncryptBypassPhrase进行加密,使用DecryptByPassPhrase函数来解密。可以使用有意义的短语或其他数据行,当成加密、解密的关键字,比较适合一般的数据加解密。

扩展资料:

sql数据库的组成:

在正式学习SQL语言之前,首先让我们对SQL语言有一个基本认识,介绍一下SQL语言的组成:

1、一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义。

2、一个SQL表由行集构成,一行是列的序列(集合),每列与行对应一个数据项。

3、一个表或者是一个基本表或者是一个视图。基本表是实际存储在数据库的表,而视图是由若干基本表或其他视图构成的表的定义。

4、一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。每个存储文件与外部存储上一个物理文件对应。

5、用户可以用SQL语句对视图和基本表进行查询等操作。在用户角度来看,视图和基本表是一样的,没有区别,都是关系(表格)。

6、SQL用户可以是应用程序,也可以是终端用户。SQL语句可嵌入在宿主语言的程序中使用,宿主语言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada语言等。

SQL用户也能作为独立的用户接口,供交互环境下的终端用户使用。

参考资料来源:百度百科-SQL数据库

SQL Server中的加密简介

在SQL Server2000和以前的版本,是不支持加密的。所有的加密操作都需要在程序中完成。这导致一个问题,数据库中加密的数据仅仅是对某一特定程序有意义,而另外的程序如果没有对应的解密算法,则数据变得毫无意义。

到了SQL Server2005,引入了列级加密。使得加密可以对特定列执行,这个过程涉及4对加密和解密的内置函数

SQL Server 2008时代,则引入的了透明数据加密(TDE),所谓的透明数据加密,就是加密在数据库中进行,但从程序的角度来看就好像没有加密一样,和列级加密不同的是,TDE加密的级别是整个数据库。使用TDE加密的数据库文件或备份在另一个没有证书的实例上是不能附加或恢复的。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/70887.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-02
下一篇2023-03-02

发表评论

登录后才能评论

评论列表(0条)

    保存