遇到的问题
数据库迁移后往往要重新创建登录名,而且创建的登录名如果和没迁移之前所在服务器的登录名一样的话就会出现提示“错误15023:当前数据库中已存在用户或角色”,为什么会出现这种情况呢。
原因是在服务器上创建登录名同时会在映射到此登录名的用户选项中所选的数据库中创建一个同名的用户名,在进行数据库迁移时数据库的用户名同步被迁移,所以在新服务器上创建登录名是会出现当前数据库中已存在用户或角色错误这样的错误提示。
解决方法
1. 清除数据库中没有相应登录名的用户,
2.调用系统存储过程 sp_change_users_login,具体用法如下:
1.打开SQL Server Management Studio, 右键选择“数据库”>“新建查询”
输入以下sql脚本:
//=======================
Use [数据库名]
go
sp_change_users_login 'update_one', 'XXX', 'XXX'
//========================
接着执行脚本即可。
注:其中update_one是存储过程的参数,表示只处理一个用户,前一个XXX是“用户”,后一个XXX是“登录”,以上这个SQL表示将服务器登录“XXX”与数据库用户“XXX”重新关联。
---------------------
作者:cjh200102
来源:CSDN
原文:https://blog.csdn.net/cjh200102/ ... 166?utm_source=copy
版权声明:本文为博主原创文章,转载请附上博文链接!