日期:2014-05-18  浏览次数:20500 次

数据库安全问题
自己在做一个公司数据库录入查询软件有点安全方面的概念有点疑问
需求是这样的:公司管理层能够看到所有的数据,部门经理能看到本部门的数据,而普通员工只能看到自己录入的数据。

我的问题是:我可以设计软件来达到只能看自己数据的目的,但是我看到很多书上都是专门用一个user之类的用户连接到数据库。那也就是说稍微有点基础的小朋友都知道侦听到用户名和密码,然后用相应软件连接数据库,就可以select到所有的数据,这是我所不想看到的。

我想要的答案是:数据库里怎么样才能让某个用户只能搜索到自己输入的数据,是要分表么。用户大概有200人,我可以建200个用户,可是如果分表的话岂不是要有200个表了,会对性能有影响么。

------解决方案--------------------
一般对你的这个要求的解决方案是创建对应的视图,每个角色只能访问某些视图,然后在视图里面控制应该显示什么数据,当然,用户的权限也能限制到某个表甚至某个列。不用分表,但是我还是建议你用视图来实现,视图的其中一个案例就是用于区分不同角色可以访问的数据。
------解决方案--------------------
这好像和数据库的安全无关吧??!!
通常每条记录都会记录建单人,通过建单人就可以控制制单人看自己的单子了。
系统中通常有部门的记录,表示建单人是哪个部门的,哪个人是部门的主管。这样,主管就可以看到哪些建单人的记录了。
至于管理层,则不限制任何条件,可以看全部的。