登录名与用户名
登录名 sql server服务器中的一个实体。使用登录名登录sql。登录名的定义存放在master数据库中syslogins表中。在服务器中的“安全性”中的“登录名”中可看到所有登录账户。
用户名 一个或者多个对象在某个特定数据库中的映射。用户的定义存放在没个数据库中的sysusers表中。
sql server将登录名与用户名的关系称为映射。在访问某个数据库时,sql server 会查询在该数据库中是否与当前的登录名相关联的用户名。若存在,就使用此用户的权限访问数据库。若不存在,则使用gust用户访问此数据库。
一个登录名可以被授权访问多个数据库,但一个登录名在每个数据库中只能映射一次。即一个登录可对应多个用户,一个用户也可以被多个登录使用。好比SQLSERVER就象一栋大楼,里面的每个房间都是一个数据库.登录名只是进入大楼的钥匙,而用户名则是进入房间的钥匙.一个登录名可以有多个房间的钥匙,但一个登录名在一个房间只能拥有此房间的一把钥匙。
孤立用户
若在ep数据库中存在用户“epuser”,但在登录名中无登录账户与之对应。那“epuser”将无法连接到sql server服务,“epuser”就成为孤立用户。
解决方法
1.添加一个与该数据库中用户名相同的登录账户。
EXEC sp_change_users_login ‘Auto_Fix‘, ‘用户名‘
2.新增登录账户,将该账户映射到孤立用户。
EXEC sp_change_users_login ‘Update_One‘, ‘用户名‘, ‘登录名‘
附:exec sp_change_users_login ‘REPORT‘(列出当前数据库中的孤立用户)
参考:http://www.cnblogs.com/13590/archive/2007/09/28/909643.html