zoukankan      html  css  js  c++  java
  • SQL Server数据库如何正确加密?

    此文章主要向大家介绍的是在SQL Server数据库上正确进行加密的实际操作步骤,我们大家都知道SQL Server数据库上内置了加密用的母的,主要是用来保护各种类型的敏感数据。在很多时候,这个加密对于你来说是完全透明的;

    当数据被存储时候被加密,它们被使用的时候就会自动加密。在其他的情况下,你可以选择数据是否要被加密。SQL Server数据库可以加密下列这些组件:

    密码

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

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

    密码加密

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

    定义加密

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

    1. CREATE PROCEDURE procedurename [;number]   
    2. [@parameter datatype   
    3. [VARYING][ = defaultvalue][OUTPUT]]   
    4. [, …]   
    5. [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,看下表,用户和服务器之间的连接将不会被加密。

    加密也不能完全自由。当连接确定后,要继续其他的构造,并且用户和服务器必须运行代码来解释加密和解释的包裹。这里将需要一些开销并且当在编译码的时候会使进程慢下来。如果网络包裹在你控制范围之外,使用这种做法是非常好的。

  • 相关阅读:
    obj,lib,dll,exe
    .net连接access数据库 关键字引起的 语句的语法错误
    XSS攻击与防御
    location.href和location.replace和location.reload的不同(location.replace不记录历史)
    C++中头文件包含问题
    SqlServerExpress2005 自动备份
    在SQL Server 的使用过程中,发现几个很有用,但不太常用
    双机镜像
    浅谈SQL Server identity列的操作方法
    镜像三机
  • 原文地址:https://www.cnblogs.com/zhouwenwu/p/2378275.html
Copyright © 2011-2022 走看看