none
数据库中字段加密的问题? RRS feed

  • 问题

  • 表tbl

    id int 标识列、PK

    loginName nvarchar(16) 登录名

    pwd nvarchar(20) 密码

    birth datetime 生日

    age smallint 年龄

    phone nchar(11) 手机

    ……剩下的为非保密项,不列出来。

    现在设置了如下两种角色:公司高管、普通员工。

    因为涉及个人隐私,要求不可以直接或间接的查看到其他人的保密信息。直接的就是在网页上看到,这个技术人员可以限制,间接的就是不可以让技术人员通过解密的方式获取真实的信息,当然本人在后台管理里是可以看到自己的的保密和非保密信息,公司高管可以查看所有人的保密和非保密信息。
    说明:技术人员用测试数据开发完后,使用该系统的身份仍是普通员工。

    最初的想法是通过DES加密后,存到数据库里,然后后台显示的时候,解密显示出来。
    这个方式有2个问题:1.技术人员可以解密知道。2.不方便查询,pwd不要紧,但是birth,age,phone不好模糊查询。例如:公司高管要统计每月过生日的员工、统计各年龄段的员工、统计139号码的员工等。

    不知各位达人们有什么更好的建议吗?

    • 已移动 Sheng Jiang 蒋晟 2010年6月30日 19:57 非System.Web (发件人:ASP.NET 与 AJAX)
    2010年6月30日 8:19

答案

  • 不能纯粹通过加密来解决问题.

    1. 技术人员能够解密这个是没错, 但为什么你要让他有接触产品环境数据的权限? 应该吸能碰开发环境才对. 而管理数据的人员, 要接触数据, 他就不应该接触加解密的代码.

    2. 查询统计不方便, 还是和前面一样, 你把权限控制好了, 有些数据就没有必要加密存储. 核心的数据要加密, 那不方便统计查询, 也是要接受的, 而且这个也不会是大量数据.

    2010年7月1日 4:12
  • 建立id int 标识列可访问加密数据表,写个SP以ID和加密后的密码为参数处理,合法的ID和密码能读取数据,不合法拒绝,其ID的密码为不可还原的加密方式

    这样技术人员没有合法ID和密码,一样不能读取数据

    控制好这个可访问加密数据表权限、表Tbl 即可

    SP就可赋予所有人执行

     


    Try SQL Server 2008 QQ:315054403 dgdba@hotmail.com
    2010年7月2日 2:11

全部回复

  • 对数据库加密

    2010年6月30日 12:59
  • 如何加密?
    2010年6月30日 23:00
  • 不能纯粹通过加密来解决问题.

    1. 技术人员能够解密这个是没错, 但为什么你要让他有接触产品环境数据的权限? 应该吸能碰开发环境才对. 而管理数据的人员, 要接触数据, 他就不应该接触加解密的代码.

    2. 查询统计不方便, 还是和前面一样, 你把权限控制好了, 有些数据就没有必要加密存储. 核心的数据要加密, 那不方便统计查询, 也是要接受的, 而且这个也不会是大量数据.

    2010年7月1日 4:12
  • 建立id int 标识列可访问加密数据表,写个SP以ID和加密后的密码为参数处理,合法的ID和密码能读取数据,不合法拒绝,其ID的密码为不可还原的加密方式

    这样技术人员没有合法ID和密码,一样不能读取数据

    控制好这个可访问加密数据表权限、表Tbl 即可

    SP就可赋予所有人执行

     


    Try SQL Server 2008 QQ:315054403 dgdba@hotmail.com
    2010年7月2日 2:11