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'
------解决方案--------------------手动创建也行
------解决方案--------------------
先新建一个x登陆,然后再:
exec sp_change_users_login 'Update_ONE','x','x'
------解决方案--------------------
exec sp_addlogin @loginame = 'x' , @passwd = '密码'
然后:
exec sp_change_users_login 'Update_ONE','x','x'
------解决方案--------------------
那就只能把这个x用户删除了。
然后再新建用户x,挂到y登陆下面
------解决方案--------------------
这个x数据库用户下,是不是有表。
实在不行,把x下面的表等对象,迁移到其他的用户下面。
------解决方案--------------------
哦,那就把存储过程,提出出来,创建到其他的用户下面把
------解决方案--------------------
在sql server 2000中好像是这样的,就是两者名称要一样。
不过,我在sql server 2008r2中,没有这个限制了