有一个有关问题困扰了小弟我很长时间了,有关SQL Server 登录和用户的有关问题

有一个问题困扰了我很长时间了,有关SQL Server 登录和用户的问题。
先问各位五一劳动节愉快!

有一个企业管理系统,有成千上万个公司职员需要通过应用程序登录到数据库进行操作(C/S模式),难不成我需要在SQL Server的企业管理器里要建几万个登录名称,我感觉这是很难想象的,像QQ Hotmail这样的系统,它的用户可能会上千万,难不成需要建上千万个登录名?

我以前的做法是在数据库中建立一个用户表(这个用户不是“企业管理器”左侧“存储过程”下面的“用户”,是我自己建立的表),表中的列有用户名、密码、权限等其他信息,然后建十几个登录,其中一个登录是公用的,另外的十几个登录是我根据角色的概念自己创建的,跟用户名没有关系,相当于用户表中好多个用户对应一个登录。公用登录的权限只能访问“用户表”,操作员输入自己在“用户表”中的ID和密码通过公用登录登录到数据库中,比较输入的用户ID和密码是否与“用户表”中的用户ID和密码相符,如果相符,则根据用户的权限使用其他的登录名再登录一次数据库,然后开始正常操作。

呵呵,确实有点绕,没办法,谁让自己水平洼呢。

我的这种做法对不对?大家通常是怎么实现应用程序访问数据库服务器的?主要是登录和用户这一块。

还有一个问题是,登录名是不是必须与用户名是一一对应的(不考虑多个数据库的情况)?

望各位兄台不吝赐教。



------解决方案--------------------
是可行的,
在SQL SERVER中没有用户名这一说(除了WINDOEW身份验证)
------解决方案--------------------
数据库用户 和 应用系统的用户 是应该分开的
不过,c/s方式,每个人都直接连数据库,不方便也不安全,而且贵(如果数据库是正版的话)
应该通过应用服务器来实现,也就是b/s或client/webserver
------解决方案--------------------
这种登录方式以后在系统中可以考虑一下。。。
------解决方案--------------------
既然有数千上万的人登录,一般有两种处理方法:
一、用少量登录名,划分为管理员、一般操作员与普通员工三种类型;三种类型有不同的操作权限。普通员工都是以第三种类型登录,但有个问题。就是无法区别究竟是什么人登录?所以登录后还应有输入员工号的界面,以进一步确定登录人员的身份。这种处理方式不是很好。
二、数据库中应有员工表。登录名可以是员工编号,这样身份很容易识别。缺点是:记录登录人员的操作日志可能会变得很庞大。如果不需要操作日志,就可以选择这种方式
------解决方案--------------------
我怎么没看明白,应用程序登陆的用户名密码,不就是一个表中的数据么。和SQL的用户名密码有什么关系。莫非你的客户端全是SQL的企业管理器或者查询分析器?
------解决方案--------------------
和cuidekun有一样的疑惑
------解决方案--------------------
难道你想给写一个用户都建立一个sql server登陆账户??????

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

这个问题思路应该是这样子的,
1.员工登陆和sql server登陆账户无关。
2.员工登陆系统应该只是检测你设的一人用户表而已。
3,这个用户表应该是由你的一个叫‘人事档案表’之类的表根据员工工号自动生成的。
3,每个用户应该有一个初始密码,或者初始密码为空。
4,每个员工第一次登陆时,强制要求修改密码。
……

------解决方案--------------------
被搞糊涂了,感觉楼主概念不清晰!!
------解决方案--------------------
探讨
我怎么没看明白,应用程序登陆的用户名密码,不就是一个表中的数据么。和SQL的用户名密码有什么关系。莫非你的客户端全是SQL的企业管理器或者查询分析器?

------解决方案--------------------
看你意思,你不想建立众多的用户

那就用一个表来存公共用户名,用户级别和权限
------解决方案--------------------
肯定用不能建立很多数据库用户的方法。
------解决方案--------------------
我没明白登陆和数据库用户之间的关系。。。。。
至于权限,很好弄,网上查查就明白了。