sql 2005 用户、组或角色 在当前数据库中已存在 无法删除数据库所有用户 解决方法

sql server 2005 用户、组或角色 在当前数据库中已存在

问题:1. sql server2005 修改系统表不能修改
2. 错误信息:sql server 2005 用户、组或角色 在当前数据库中已存在

 

想手工把登录名与数据库中的用户名进行关联, 系统不让; 想删除数据库中的用户再重建, 竟然也不让删……
最终发现这种情况叫”存在孤立用户”, 其实用系统的一个存储过程sp_change_users_login就可以搞定的:

Use 数据库
go
sp_change_users_login ‘update_one’, ‘登录用户名’, ‘用户名’


解释一下参数:

目的让”登录用户名’” 与 ‘用户名’ 联系起来

update_one, 表示只对一个用户进行操作

登录用户名’与’用户名’, 则分别是SQL Server的登录名与数据库中的用户名

sp_change_users_login的更详细的用法可以参考SQL Server的联机帮助, SQL Server 2005的在此, SQL 2000的链接不方便做成链接的形式, 各位可以自己到联机丛书的索引中找一下.

 

Use Northwind
go
sp_change_users_login ‘update_one’, ‘fwg’, ‘fwg’

其中Northwind为存在孤立用户的数据库,update_one是存储过程的参数,表示只处理一个用户,前一个fwg是“用户”,后一个fwg是“登录”,以上这个SQL表示将服务器登录“fwg”与 Northwind 数据库用户“fwg”重新连接起来。这样就可以正常使用数据库了。

Tags

About Author

Alex Lorel

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua veniam.

Latest Posts

Categories

Tags