微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQLServer2008用户组或角色'*****'在当前数据库中已存在问题的解决办法

sqlServer2008用户组或角色'*****'在当前数据库中已存在问题的解决办法 在迁移数据库的过程中sqlServer SDE的问题   为一个数据库添加一个用户时,提示以下信息: 用户、组或角色 '*****' 在当前数据库中已存在。 (Microsoft sqlServer,Error: 15023)   问题分析:在迁移测试平台数据库的过程中发现, 在两台服务器上运行的sql server服务器之间迁移数据库的之后, 会出现一个在源服务器上可以正常的用户在目的服务器上无法登录的情况。   问题解决: 将数据库恢复到其他服务器时,数据库中包含一组用户和权限, 但可能没有相应的登录或者登录所关联的用户可能不是相同的用户。 这种情况被称为存在“孤立用户”。 此时是不能通过新建登录或者是对同名登录授予对应数据库的“用户”权限来解决登录问题, 因为sqlServer会报出“错误15023:当前数据库中已存在用户或角色”, 为了解决这个问题, 需要调用系统存储过程sp_change_users_login, 具体用法如下:   1.打开sql Server Management Studio,  右键选择“数据库”>“新建查询”来新建一个查询。 输入以下sql脚本: //======================= Use [数据库名] go sp_change_users_login 'update_one','AAA','AAA' //======================== 接着执行脚本即可。   注:其中update_one是存储过程的参数, 表示只处理一个用户,前一个AAA是“用户”, 后一个AAA是“登录”, 以上这个sql表示将服务器登录“AAA”与数据库用户“AAA”重新连接起来。 实例测试案例: Use sde go sp_change_users_login 'update_one','sde','sde' sp_change_users_login 'update_one','AAA' use cbjyq_flowdb  go sp_change_users_login 'update_one','cbjyq_flowdb','cbjyq_flowdb'; use sde  go sp_change_users_login 'update_one','cbjyq_flowdb'; use cbjyq_flowdb  go sp_change_users_login 'update_one','sde'; --the--end!  

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐