日期:2014-05-17  浏览次数:20570 次

sqlserver用户名与登录名的关系
sqlserver2000中有一个用户名x,登录名中没有x,有y
执行exec sp_change_users_login 'Report',查询到x是孤立用户,如何将x关联到y?
------解决方案--------------------
试试这个:

解决方法是使用sp_change_users_login来修复。sp_change_users_login的用法有三步:
步骤1:
exec sp_change_users_login 'REPORT'
列出当前数据库的孤立用户
步骤2:
exec sp_change_users_login 'AUTO_FIX','用户名'
可以自动将用户名所对应的同名登录添加到syslogins中
步骤3:
exec sp_change_users_login 'UPDATE_ONE','用户名','登录名'
将用户名映射为指定的登录名

------解决方案--------------------
用这个试试:

exec sp_change_users_login 'UPDATE_ONE','x','y'
------解决方案--------------------
exec sp_change_users_login 'Update_ONE','x','y'
------解决方案--------------------
手动创建也行
------解决方案--------------------
引用:
exec sp_change_users_login 'Update_ONE','x','y' 报如下错误信息
该登录已经在另一个用户名下拥有帐户。


先新建一个x登陆,然后再:

exec sp_change_users_login 'Update_ONE','x','x'
------解决方案--------------------
引用:
exec sp_change_users_login 'Update_ONE','x','y' 报如下错误信息
该登录已经在另一个用户名下拥有帐户。



exec sp_addlogin @loginame =  'x' ,  @passwd =  '密码' 

然后:

exec sp_change_users_login 'Update_ONE','x','x'
------解决方案--------------------
引用:
先新建一个x登陆是不行的,因为原系统中都是用y登录的,没有用x登录。


那就只能把这个x用户删除了。

然后再新建用户x,挂到y登陆下面
------解决方案--------------------
引用:
我也尝试过新建用户,但是选择登录名的下拉列表中找不到y啊



这个x数据库用户下,是不是有表。

实在不行,把x下面的表等对象,迁移到其他的用户下面。
------解决方案--------------------
引用:
x用户下有存储过程,没有表


哦,那就把存储过程,提出出来,创建到其他的用户下面把
------解决方案--------------------
引用:
sqlserver的登录账户只能拥有一个用户账户吗?目前登录账户y已经有一个用户y和他对应


在sql server 2000中好像是这样的,就是两者名称要一样。

不过,我在sql server 2008r2中,没有这个限制了