读书人

分权限看筛选相关信息的有关问题

发布时间: 2012-02-21 16:26:23 作者: rapoo

分权限看筛选相关信息的问题

我有一个人员表,里面有单位信息,但单位有大单位小单位区别,登陆者分权限,比如存在管理者,部门管理者,部门小组长,他只能看到他管理权限内的人员信息,想这个的实现思路。
另一个,如果我的程序设计已固定,初期没有考虑这个问题,我能不能改这个表名,利用一个以前的视图代替,但这个视图需要传这个权限变量,有什么好的方法?不知道视图能不能传变量,不行可不可以用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

读书人网 >PB

热点推荐