先问各位五一劳动节愉快!有一个企业管理系统,有成千上万个公司职员需要通过应用程序登录到数据库进行操作(C/S模式),难不成我需要在SQL Server的企业管理器里要建几万个登录名称,我感觉这是很难想象的,像QQ Hotmail这样的系统,它的用户可能会上千万,难不成需要建上千万个登录名?我以前的做法是在数据库中建立一个用户表(这个用户不是“企业管理器”左侧“存储过程”下面的“用户”,是我自己建立的表),表中的列有用户名、密码、权限等其他信息,然后建十几个登录,其中一个登录是公用的,另外的十几个登录是我根据角色的概念自己创建的,跟用户名没有关系,相当于用户表中好多个用户对应一个登录。公用登录的权限只能访问“用户表”,操作员输入自己在“用户表”中的ID和密码通过公用登录登录到数据库中,比较输入的用户ID和密码是否与“用户表”中的用户ID和密码相符,如果相符,则根据用户的权限使用其他的登录名再登录一次数据库,然后开始正常操作。呵呵,确实有点绕,没办法,谁让自己水平洼呢。我的这种做法对不对?大家通常是怎么实现应用程序访问数据库服务器的?主要是登录和用户这一块。还有一个问题是,登录名是不是必须与用户名是一一对应的(不考虑多个数据库的情况)?望各位兄台不吝赐教。

解决方案 »

  1.   

    是可行的,
    在SQL SERVER中没有用户名这一说(除了WINDOEW身份验证)
      

  2.   

    数据库用户 和 应用系统的用户 是应该分开的
    不过,c/s方式,每个人都直接连数据库,不方便也不安全,而且贵(如果数据库是正版的话)
    应该通过应用服务器来实现,也就是b/s或client/webserver
      

  3.   

    我怎么没看明白,应用程序登陆的用户名密码,不就是一个表中的数据么。和SQL的用户名密码有什么关系。莫非你的客户端全是SQL的企业管理器或者查询分析器?
      

  4.   

    难道你想给写一个用户都建立一个sql server登陆账户??????这个问题思路应该是这样子的,
    1.员工登陆和sql server登陆账户无关。
    2.员工登陆系统应该只是检测你设的一人用户表而已。
    3,这个用户表应该是由你的一个叫‘人事档案表’之类的表根据员工工号自动生成的。
    3,每个用户应该有一个初始密码,或者初始密码为空。
    4,每个员工第一次登陆时,强制要求修改密码。
    5,如果怕a员工抢在b员工之前登陆系统,并修改掉密码,第一次登陆可以设置一个可几个员工个人信息的问题,如问他的的身份证号是多少等。
    6,这个问题的关键就是有人事档案表就好办
      

  5.   


    应用程序的用户与数据库用户是不一样的。
    如果像你那样,像taobao这样的网站不得累死
      

  6.   

    三层的SQL连接,就需要用户名和密码,所以必需为每个人设置用户名和密码。你可以采取通用的用户名和密码方式。