不明白为什么要既有登录名,又有数据库用户名 因为数据库用户名是关联到登录名的
只要登录了,如果这个登录名有一个数据库用户名与之关联,那么也就自动连接到数据库了别的数据库如oracle,mysql都只有一个数据库用户名的,不存在登录名的概念SQL SERVER从概念上似乎到先登录到实例,再登录到数据库
而实际上这两步是自动同时完成的,感觉多此一举

解决方案 »

  1.   

    谢楼上的,哪里不同?
    因为别的数据库,比如Oracle,MySQL都无此概念的你用登录名登录了也就意味着你自动用数据库用户登录到数据库了
    这不多余啊?
    当然如果某个登录名没有与之关联的数据库用户,那么登录后还是没连接到数据库的
    总是,我感觉,
    这个登录名和数据库用户名共存是没有太大意义的
      

  2.   

    登陆名就是登陆到SqlServer用的帐户,数据库用户名就是说这个数据库那些人可以用,一个SqlServer下面可以建N多个数据库,难道你登陆了所有的数据库都要给你用吗?这样似乎很不安全,我有一个数据库挂在服务器上面,你也有一个挂在服务器上面,我的数据库凭什么给你看,你的数据同样也不希望我看到吧当然如果登陆名是sysadmin组的是可以使用全部的数据库,可是一般的开发人员不会给这么大的权限,这样的结构更安全一些
      

  3.   

    谢谢高升,我觉得两个用户是没有必要的
    别的数据库没有这个概念,难道就不安全了吗?你说的登录到SQL SERVER说具体是指什么呢?我想请教一下
    数据库用户名应该是属于某个数据库的对吧?
    那么登录名呢?看来应该比数据库用户名更高一级
    那么登录名记录在哪里呢?
      

  4.   

    每个服务器目录下有一个 security>logins  这里就保存了可以登陆到该服务器的用户而每个数据库下的security就保存了该数据库的用户我是这样理解的
      

  5.   

    举个简单的例子:有一个Test1数据库放在A服务器上面,Test1数据库有两个用户叫T1,T2,分别有不同的权限,还有一个数据库Test2,上面有个用户叫T1,T3T1,T2,T3分别对应登陆名T1,T2,T3那么你用T1,可以访问系统库和Test1、Test2数据库
    T2,T3只能访问系统库和各自的数据库,这样是不是更安全一点
    下面继续:现在服务器升级了,更换了一个新的服务器B,需要把Test1数据库从A转到B上去,那么只需要简单的在A上分离,附加到B上,然后用sa用户在B服务器上执行修复独立用户T1,T2,那么现在看看T1,T2的权限是不是和以前一模一样了,非常的方便如果没有这个数据库用户只有登陆名是不是很麻烦,反之只有数据库用户,那么一个数据库可以使用几个数据库?怎么限制不能访问其他数据库?
      

  6.   

    谢谢高升
    我觉得我关键是想弄清楚SQL SERVER体系结构
    看了很多书,周末蹲在书店了看了2天,没有一本书把SQL SERVER体系结构讲清楚的1。登录名(LOGIN)和数据库之间是什么关系呢?
    2。数据库用户和数据库之间是什么关系呢?
    3。登录名和数据库用户之间似乎是数据库用户关联到登录名
       只要登录了,也同时自动登录到数据库了。这不多此一举么?
    4.登录名和数据库用户名各自的权限代表什么意思呢?
    5。某个dbo是某个数据库的拥有者,那么倒是是数据库属于某个用户,还是某几个用户属于某个数据库呢?
       这不自相矛盾么?另外开个玩笑,我不太清楚你说的分离和附加是什么意思
    如果你认为只有登录名很麻烦,那么别的数据库都很麻烦了,只有SQL SERBER才是最方便和安全的?
    ^_^