我做的毕业设计是做一个数据库,赶了好几天,现遇到一个问题:就是用户权限设置,在D7中如何实现啊? 比如说管理员,可以修改数据,而一般用户只可以浏览数据,还有一些其他的权限问题,请告诉我怎么处理好吗!我们快要答辩了,急死了!

解决方案 »

  1.   

    权限设置不是个小问题,如果划分到字段级别的就已经很困难了;
    不过我想你的问题比较简单,如果是SQL SERVER,可以给管理员
    和一般用户分配不同的连接数据库的用户,对数据库用户权限再
    进行划分;
      

  2.   

    建一个权限表:用户名susername:string,密码spassword:string,用户组sgroup:string,主要字段就这三个,你做毕业设计也用不到其他太多的字段,有这三个就足够了。然后,在数据库里加纪录:
    用户名:administrator,密码:12345,sgroup:管理员用
    用户名:guest,密码:54321,sgroup:一般用户用
    然后做一个登录界面,根据他所输入的用户名和密码,查找sgroup,如果是管理员用,就按原界面显示就可以,如果是一般用户用,就把界面中修改数据的功能屏蔽掉就可以了,比如把修改按钮的visible或enable属性变为false。
    当然,你也可以不建数据表,在程序中直接判断权限,但做数据库要规范得多,扩展性也要好得多。
      

  3.   

    恩,先谢谢各位的回答!就hhhrrrttt(我) 的回答那样,是可行,但我做的窗口很多,依次进行屏蔽的话,工作量很大的,有没有稍微工作量小一点的呀?
      

  4.   

    hhhrrrttt(我) ( ) 
    他说得很好阿
      

  5.   

    如果你嫌工作量太大的话,可以事先设定修改功能组件的tag=1,在登录的时候判断,如果是管理员的话,还是老样子。如果是一般用户的话,就把所有tag=1的组件的visible或enable属性变为false,这样就可以了。有一个类似的过程,你可以借鉴一下:
    procedure setControlEnabled(changeform: TForm; itag: integer);
    var
      i: integer;
      curControl: TWinControl;
    begin
      for i := 0 to changeform.componentCount - 1 do
      begin
        if changeform.Components[i].Tag = itag then
        begin
          curControl := TWinControl(changeform.Components[i]);
          curControl.Enabled := false;
        end;
      end;
    end;
    很惭愧,这个不是我写的,是一个同事写的,应该对你有所帮助的。
      

  6.   

    我觉得outer2000(天外流星) 的方法最简单