分权限看筛选相关信息的问题
我有一个人员表,里面有单位信息,但单位有大单位小单位区别,登陆者分权限,比如存在管理者,部门管理者,部门小组长,他只能看到他管理权限内的人员信息,想这个的实现思路。
另一个,如果我的程序设计已固定,初期没有考虑这个问题,我能不能改这个表名,利用一个以前的视图代替,但这个视图需要传这个权限变量,有什么好的方法?不知道视图能不能传变量,不行可不可以用PB在程序打开时生成一个临时视图?
[解决办法]
首先解答你的问题:
一、视图不能传递变量
二、可以动态生成视图,但是没有临时视图这种说法。
你的思路的不足之处:
一、只是动态生成视图是没法满足你的需求的,因为你要考虑到并发操作,两个人同时操作时该视图就会混乱。
俺的解决方案:
建立这样一个视图,通过数据库得到连接用户的用户名,然后使用这个用户名做为参数,过滤用户表,只显示当前连接用户可见的内容。
ORACLE数据库的例子如下(俺只熟悉这一种):
- SQL code
create or replace view ENV_TEST as select * from TABLE1 where NAME = SYS_CONTEXT('USERENV','CURRENT_USER');
[解决办法]
建立一个表记录某个USER可以查询哪些user的信息tb(usera ,userb)
select * from ta, tb where ta.user = tb.userb and tb.usera = :as_user
这样就行了,
只要权限有变动时,把结果处理写入到表tb