請教權限設定問題(30分)

  • 主题发起人 fluganto
  • 开始时间
F

fluganto

Unregistered / Unconfirmed
GUEST, unregistred user!
[8D]各位大俠,請教一個問題: 怎麼去設定一個程序裡登入者的權限,原理是什麼?
比如說對同一表a用戶隻可以預覽,不可列印,b用戶則可以預覽,也可以列印,或者
對一個表,a用戶隻能read,b用戶則可write,如果有范例就更好了,先謝謝了!
 
设计一个Table,存放你要控制的权限点(比如单据1的打印,单据1的预览,单据2的打印,单据2的预览等等),还有
一个Table存放用户和权限点的关系,(用户表你总有吧)
每个权限控制点分配一个唯一ID,然后提供2个界面,一个负责维护权限点数据,一个负责维护用户和权限点的关系。

程序里要控制权限的地方,先判断 HaveRight(UserID,RightID):Boolean,到用户权限关系表里去查,如果有就返回True,
反之就False,这样不就可以控制权限了么?还可以根据自己的需要在这个基础上作一些扩充。
 
同意楼上的
在表中查找权限,在登陆的时候用。
[8D]
 
to 楼上
不一定是在登陆的时候用,看具体情况,可以在需要控制权限的时候再用。
 
分两种情况:一、登录时,初始化主窗菜单,控制该菜单对于该用户是否可用(浏览);
二、打开窗体以后再判断是否有编辑的权限,控制子窗按钮(构造函数中写)。至少需要
三张表:1.用户信息表 2.基本权限信息表,3.用户权限信息表
 
学习,
帮你UP
 
謝謝各位的回復,我還有一些地方不明白:我是控制主窗裡組件的enabled屬性,還是也要
控制table裡用戶的能否read,insert,edit,象控制可以預覽,不可打印,如果隻是控制主窗
是的打印按鈕的enbaled為false的話,用戶還是可以用"預覽"裡報表帶的"打印"去打印,
如果報表也初值化(不好意思,我還不知道要怎麼把報表自帶的print功能拿掉),初值化的
時間會不會太長了? 控制某用戶對某表隻有read權限,也是控制窗體裡組件的enabled屬性
嗎?

 
如果你在程序里用数据库级的权限控制会很麻烦的,一般也不这么做,程序只用一个用户名登陆,
每个用户的权限在前台控制
 
那請問數據庫級的權限要怎麼去控制? 一般的做法是什麼?
 
數據庫級的權限太麻烦,我没有实现过,不过我想要那样做的话,就要不同(在你的系统里)的用户用不同
的(数据库)用户登陆数据库,而且你要在你的系统里提供直接编辑数据库用户权限的界面(用SQL实现)。
但是这样做会有很多问题,比如数据库里权限不一定能直接对应业务上的权限,要么你就要维护两者间的关系。
你不觉得很麻烦吗?
[8D][8D]
 
多人接受答案了。
 
顶部