关于sql孤立用户

 

登录名与用户名

登录名   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

        http://wenku.baidu.com/link?url=t4ISK06hKZqhApCRFv7MUZE_wv90BZ9ul7AFQQKnCWl-staDz-xSME5UWsBBYYLp3p0_MeaPAqAKUqE5jLXqoijogFE3COr0VCsUU1IH0rq

        http://www.cnblogs.com/rainman/p/3509842.html#m1

原文地址:https://www.cnblogs.com/peaceOfMind/p/3613970.html