我想实现这种需求
1.每个人输入的数据保存在数据库中都是加密保存的 但是他本人有权利可以看到真实内容
2.他的上级主管(若干人)可以看到他的信息内容
3.部门之间不能查看 也就是别的部门的主管不能看到其他部门的员工信息.sql server2005加密内容是用 公钥加密 私钥解密的 也就是要让别人看到我的内容 必须要把私钥给别人, 这样很不好 有没有用私钥加密 公钥解密的方法?
1.每个人输入的数据保存在数据库中都是加密保存的 但是他本人有权利可以看到真实内容
2.他的上级主管(若干人)可以看到他的信息内容
3.部门之间不能查看 也就是别的部门的主管不能看到其他部门的员工信息.sql server2005加密内容是用 公钥加密 私钥解密的 也就是要让别人看到我的内容 必须要把私钥给别人, 这样很不好 有没有用私钥加密 公钥解密的方法?
select *from t where id ='谁'
你说的是非对称加密. 非对称加密不适用于加密大量数据.
可以考虑对称加密.
每个人使用的对称加密密钥放在一个表中, 这个表对应了密钥和该密钥可以被那些人使用.
对应的, 要求每个人用非对称加密方式把自己能使用的对称密钥加密一次.
这样对称密钥是安全的, 并且能够达到楼主的要求.
你针对的是数据库本身的用户还是你的前端程序的用户?
如果是数据库本身的用户,sqlserver2005应该有一套授权的机制的。