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

wlj768 2011-10-10 03:29:35

我有一个人员表,里面有单位信息,但单位有大单位小单位区别,登陆者分权限,比如存在管理者,部门管理者,部门小组长,他只能看到他管理权限内的人员信息,想这个的实现思路。
另一个,如果我的程序设计已固定,初期没有考虑这个问题,我能不能改这个表名,利用一个以前的视图代替,但这个视图需要传这个权限变量,有什么好的方法?不知道视图能不能传变量,不行可不可以用PB在程序打开时生成一个临时视图?
...全文
177 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaobn_cn 2011-10-11
  • 打赏
  • 举报
回复
首先解答你的问题:

一、视图不能传递变量

二、可以动态生成视图,但是没有临时视图这种说法。

你的思路的不足之处:

一、只是动态生成视图是没法满足你的需求的,因为你要考虑到并发操作,两个人同时操作时该视图就会混乱。

俺的解决方案:

建立这样一个视图,通过数据库得到连接用户的用户名,然后使用这个用户名做为参数,过滤用户表,只显示当前连接用户可见的内容。

ORACLE数据库的例子如下(俺只熟悉这一种):

create or replace view ENV_TEST as
select *
from TABLE1
where NAME = SYS_CONTEXT('USERENV','CURRENT_USER');
zzxwn1 2011-10-11
  • 打赏
  • 举报
回复
建立一个表记录某个USER可以查询哪些user的信息tb(usera ,userb)
select * from ta, tb where ta.user = tb.userb and tb.usera = :as_user
这样就行了,
只要权限有变动时,把结果处理写入到表tb
xiaobn_cn 2011-10-11
  • 打赏
  • 举报
回复
SQL Server俺不熟,不过思路都是一样的,就是怎么获得当前连接的用户名的问题。
wlj768 2011-10-11
  • 打赏
  • 举报
回复
俺思路确实有问题,当时就是没考虑到这些而直接做了。可oracle俺也不怎么用,有没有sqlserver的解决方法。

1,079

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧