SQL Server安全-加密术和SQL注入攻击

2008-04-02 10:33:01来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

  SQL Server上内置了加密术用来保护各种类型的敏感数据。在很多时候,这个加密术对于您来说是完全透明的;当数据被存储时候被加密,他们被使用的时候就会自动加密。在其他的情况下,您能够选择数据是否要被加密。SQL Server能够加密下列这些组件:

  ·密码

  ·存储过程,视图,触发器,用户自定义函数,默认值,和规则。

  ·在服务器和用户之间传输的数据

  密码加密术

  SQL Server自动将您分配给登陆和应用角色的密码加密。尽管当您能够从主数据库中直接察看系统表格而无需密码。您不能给对这种情况作出任何修改,事实上,您根本不能破坏他。

  定义加密术

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

CREATE PROCEDURE procedurename [;number]
[@parameter datatype
[VARYING][ = defaultvalue][OUTPUT]]
[, …]
[WITH RECOMPILE | 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 Server不会提供任何内置的工具来加密您的数据。假如您需要保护存储在SQL Server上的数据,我们给您两条建议:第一,您能够利用GRANT 和DENY关键字来控制您想哪个用户能够在SQL Server中读取的数据。

共3页。 1 2 3 :

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: SQL Server备份出错及应对措施

下一篇: SQL Serve r数据汇总完全解析