有关权限的设置问题?请高手指点? 在进行权限管理时,假如说系统管理员拥有超级权限,而一般用户只能对系统进行查询,而不能修改和删除,那么我在添加一般用户的时候,是不是每次都要对系统的某些项(如修改,删除)进行屏蔽呢?如果说每次都要进行操作,那不是很麻烦?如果不用,那该怎么做呢?请高手指教?并说出处理的方法?谢谢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 说说我的思路(可能很笨)====================================================================把“普通用户”所“具有的”要改变数据库的操作,比如修改,删除,更新等都编个标号存如数据库的一张表(table)中(高级用户可以修改此表)然后在用户登录的时候判断是否是“普通用户”如果是在执行某个改变数据库操作的时候就去table中查看这个操作是否存在如果存在就可以继续不存在就不能继续虽然比较麻烦重复的也很多(没个操作都要去检查table中有没有)所以最好写成函数来用 Create Table AppGroupAction: ID GName MName FName AName IsUser 1 管理员 mnuUser frmPopedom aNew 0 2 人事部 mnuPoperDom frmUser aDel 0 // GName:用户组名; MName:MenuItem Name; FName: Form Name; AName: Action Name IsUser: 判断是用户还是组名;----------------------------------------------------------------------------------OnFormShow中: with Data.Popedom do begin Close; SQL.Clear; SQL.Text := 'Select * From AppGroupAction ' + 'Where ((gName = ' + Char(39) + pstrUserGroup + Char(39) + ' and IsUser = ''0'') or (gName =' + Char(39) + pstrUserCode + Char(39) + ' and IsUser = ''1'')) and Upper( fName) = '+ Char(39)+Self.Name + Char(39) ; // gName 可为组名或用户名, IsUser 判断是否为用户名或组名, fName 为窗体名; Open; while not Eof do begin C := Self.FindComponent(FieldByName('aName').AsString); if C <> Nil then C.Tag := 1; // 有权限则标志为1 Next; end; DBGridEh checkbox 如何指向想要指向的记录作为当前记录? 请问有什么控件可以打印预览xls文件?(调用excel除外) 报表(quickrep) 三层结构中的数据加密 高分求教,请问有没有知道二维条行码的编码技术,如何将数据转化成二维条行码? 用DELPHI编的客户端程序调用SQLSERVER存储过程时返回“无法找到所需指示器变量” 帮忙看一下我写的这个DLL代码有什么问题?谢谢大家 怎样改成函数? (急)delphi6怎么链Access2000的数据库? 求:本文文件分拆传送方法 一个关于四舍五入的问题
====================================================================
把“普通用户”所“具有的”要改变数据库的操作,比如修改,删除,更新等
都编个标号存如数据库的一张表(table)中(高级用户可以修改此表)
然后在用户登录的时候判断是否是“普通用户”
如果是
在执行某个改变数据库操作的时候
就去table中查看这个操作是否存在
如果存在就可以继续
不存在就不能继续虽然比较麻烦
重复的也很多(没个操作都要去检查table中有没有)
所以最好写成函数来用
ID GName MName FName AName IsUser
1 管理员 mnuUser frmPopedom aNew 0
2 人事部 mnuPoperDom frmUser aDel 0
// GName:用户组名; MName:MenuItem Name; FName: Form Name; AName: Action Name
IsUser: 判断是用户还是组名;
----------------------------------------------------------------------------------
OnFormShow中:
with Data.Popedom do
begin
Close;
SQL.Clear;
SQL.Text := 'Select * From AppGroupAction ' +
'Where ((gName = ' + Char(39) + pstrUserGroup + Char(39) + ' and IsUser = ''0'') or (gName =' +
Char(39) + pstrUserCode + Char(39) + ' and IsUser = ''1'')) and Upper( fName) = '+
Char(39)+Self.Name + Char(39) ;
// gName 可为组名或用户名, IsUser 判断是否为用户名或组名, fName 为窗体名;
Open;
while not Eof do
begin
C := Self.FindComponent(FieldByName('aName').AsString);
if C <> Nil then
C.Tag := 1; // 有权限则标志为1
Next;
end;