我想实现对SQL数据库进行加密,数据库是应用在winform中的,但是现在还没有头绪(当然不只是对登陆用户的密码进行加密),请大家提提建议和方法!

解决方案 »

  1.   

    我想通过加密数据库主文件和次文件,用数据库的时候就还原这两个文件,大家说这种想法能实现数据库加密吗?我用DES算法做了,可是加密后的数据库质疑,解密后数据库也不能用!况且加密解密还都要在服务器打开之前,这样控制服务器也有麻烦啊!谁有更好的办法啊!
      

  2.   

    "对SQL数据库进行加密"的说法可能比较难,数据库不是你自己写的!
    对数据库中的数据进行加密是可行的,.net 提供了一大堆加密算法.System.Security.Cryptography 下面有许多算法.
      

  3.   

    如果仅仅是对数据进行加密并不难啊,weisunding说的那样就行。
      

  4.   

    我知道数据加密,然后再解密,数据以明文形式传入数据库,可是怎么传入啊?在服务器运行的时候不能对加密数据进行操作啊!服务器怎么控制啊?还有我上面说过DES算法不行啊,那要用什么算法啊?
      

  5.   

    我觉得全部加密有点不现实,写个加密算法加密重要字段就行了,System.Security.Cryptography,MSDN里有例子,可以看看.
    还有可以去这里看看回答:http://61.186.252.131//Expert/topic/1866/1866394.xml?temp=.7181513
      

  6.   

    数据库安全不是这么搞得,你还是学学dba方面的东西,sql数据库的安全性是足够了Q : 數據庫安全管理范例! 
    主要解答者: zjcxc 提交人: zjcxc 
    感谢: zjcxc 
    审核者: pbsql 社区对应贴子: 查看 
         A :  首先,做好用户安全:  
     
    --简单的,只允许sql的用户访问sql(防止利用administrator组用户访问)  
     
    1.企业管理器--右键SQL实例--属性--安全性--身份验证--选择"sql  server和windows"--确定  
     
    2.企业管理器--安全性--登陆--右键sa--设置密码--其他用户也设置密码  
     
    3.删除用户:  
               BUILTIN\Administrators  
               <机器名>\Administrator  --这个用户不一定有  
       这样可以防止用windows身份登陆SQL  
     
    4.设置进入企业管理器需要输入密码  
    在企业管理器中  
               --右键你的服务器实例(就是那个有绿色图标的)  
               --编辑SQL  Server注册属性  
               --选择"使用  SQL  Server  身份验证"  
               --并勾选"总是提示输入登录名和密码"  
               --确定  
     
    --经过上面的设置,你的SQL  Server基本上算是安全了.  
    ------------------------------------------------------------------------  
     
    其次,改默认端口,隐藏服务器,减少被攻击的可能性  
     
    SQL  Server服务器  
               --开始  
               --程序  
               --Microsoft  SQL  Server  
               --服务器网络实用工具  
               --启用的协议中"TCP/IP"  
               --属性  
               --默认端口,输入一个自已定义的端口,比如2433  
               --勾选隐藏服务器  
     
    ----------------------------------------------------------------------------  
    --管好sql的用户,防止访问他不该访问的数据库(总控制,明细还可以控制他对于某个数据库的具体对象具有的权限)  
     
    --切换到你新增的用户要控制的数据库  
    use  你的库名  
    go  
     
    --新增用户  
    exec  sp_addlogin  'test'            --添加登录  
    exec  sp_grantdbaccess  N'test'            --使其成为当前数据库的合法用户  
    exec  sp_addrolemember  N'db_owner',  N'test'            --授予对自己数据库的所有权限  
     
    --这样创建的用户就只能访问自己的数据库,及数据库中包含了guest用户的公共表  
    go  
     
    --删除测试用户  
    exec  sp_revokedbaccess  N'test'            --移除对数据库的访问权限  
    exec  sp_droplogin  N'test'            --删除登录  
     
    ---------------------------------------------------------------------------  
    最后一步,为具体的用户设置具体的访问权限,这个可以参考下面的最简示例:  
    --添加  
    --添加用户:  
    exec  sp_addlogin  '用户名','密码','默认数据库名'  
     
    --添加到数据库  
    exec  sp_grantdbaccess  '用户名','数据库名'  
     
    --分本权限  
    grant  insert,select,update,delete  on  table1  to  public    
     
     
    -------------------------------------------------------------------  
    至于具体的安全设置和理论知道,参考SQL联机帮助
      

  7.   

    我只是想实现只有指定的客户,经过我们的软件才可以看到数据,对其进行操作,其他用户未经许可(即解密)即使打开数据库,看到表格中的数据也不是正确的,而且这是一个单机版数据库,不是web程序中的,而且数据库没有sa密码,是windows nt 验证的。并且对文件加密我也会一点,MSN也看过,可能还是没有完全掌握吧,我目前不知道怎样对关键的字符加密,并且不影响数据的类型。
    **还有,我想请问各位说的对关键“字段”加密中的字段是指关键“列”还是关键“字符串(字符)”啊?
      

  8.   

    你不让他们打开不就可以了,真是脱了裤子放屁。数据库不是word文档,他又自己的安全机制,你们领导白痴不是他的错,你搞技术的跟着他白痴就说不过去了。你所碰到的问题,通过sql的安全配置都可以解决的,而不是异想天开的直接对数据库文件修改
      

  9.   

    system.secruity下面一搭子加密类~~~~DES,MD5,SHA等等~~
      

  10.   

    SQL-Server能辨别且使用被自己加密的数据库文件:
    如果在资源管理器中对数据库文件进行加密,则会提示"该文件正在使用中",所以,必须停止SQL-Server服务器,然后再进行加密,但加密后再启动SQL-server服务器,刚刚加密的文件将无法使用,SQL企业管理其中显示为"置疑"数据库. 这就是所说的"SQL-Server无法辨别被用户加密的数据库文件."
      

  11.   

    to    jinjazz(近身剪(充电中...)) ( ) 信誉:100 
    数据库安全不是这么搞得,你还是学学dba方面的东西,sql数据库的安全性是足够了
    ----------------------------------------------------------------------------------倘若是c/s模式,客户可以看到你的*.mdf数据库文件,把这数据库文件拷贝到其他pc上,注册到企业管理其中,一切都可以看到,这个你试过了吗?