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', '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', 'cbjyq_flowdb';

use cbjyq_flowdb 
go
sp_change_users_login 'update_one', 'sde', 'sde';
--the--end!

用户、组或角色 '' 在当前数据库中已存在。 (Microsoft SQL Server,错误: 15023)的更多相关文章

  1. asp.net编译中出现 数据库 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\test1.mdf' 已存在。请选择其他数据库名称。

    关于asp.net编译中出现数据库 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\test1.mdf ...

  2. sql server 2008启动时:已成功与服务器建立连接,但是在登录过程中发生错误。(provider:命名管道提供程序,error:0-管道的另一端上无任何进程。)(Microsoft SQL Server,错误:233) 然后再连接:错误:18456

    问题:sql server 2008启动时:已成功与服务器建立连接,但是在登录过程中发生错误.(provider:命名管道提供程序,error:0-管道的另一端上无任何进程.)(Microsoft S ...

  3. 数据库 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\test1.mdf' 已存在。请选择其他数据库

    关于asp.net编译中出现 数据库 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\test1.md ...

  4. mdb数据库文件如何导入Microsoft SQL Server 2008中

    1.在‘开始’菜单打开‘Microsoft SQL Server 2008→SQL Server Management Studio’. 2.新建一个数据库(名称自定义),选择新建的数据库点击右键选择 ...

  5. 附加数据库时,提示“Microsoft SQL Server,错误: 5120”, 解决方案

    错误的提示内容为:

  6. 无法连接到localhost。其他信息:用户“sa”登录失败。原因:该用户被禁用。(Microsoft Sql Server,错误:18470).

    18470错误: 解决方案: 使用windows身份验证登录之后,选择安全性--->登录名--->sa--->右击--->属性: 右击选择属性进入属性页面: 选择状态,然后再登 ...

  7. 无法连接到localhost.其他信息:用户“sa”登录失败。(MicroSoft Sql Server,错误:18456)

    18456错误: 在安装的时候如果选择的身份验证模式为:Window身份验证模式,就会出现18456的错误. 解决方案: 使用windows身份验证登录之后,在下面红框上单击右键,点击属性: 点击属性 ...

  8. SQL 2008R2问题:用户、组或角色'XXX'在当前数据库中已存在?

    为一个数据库添加一个用户或者映射数据库时,提示以下错误信息: 用户.组或角色 '*****' 在当前数据库中已存在. (Microsoft SQLServer, 错误 : 15023) 问题原因:在还 ...

  9. Microsoft SQL Server中的事务与并发详解

    本篇索引: 1.事务 2.锁定和阻塞 3.隔离级别 4.死锁 一.事务 1.1 事务的概念 事务是作为单个工作单元而执行的一系列操作,比如查询和修改数据等. 事务是数据库并发控制的基本单位,一条或者一 ...

随机推荐

  1. HDU 3926 图的同构

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3926 题意:给定2个顶点度最大为2的无向图.问你这2个无向图是否同构. 思路: 1.最大度为2.说明这 ...

  2. sql 循环某段时间的每一天

    create table #t1( 日期 datetime) declare @stime datetime;declare @etime datetime set @stime ='2015-01- ...

  3. MFC MessageBox AfxMessageBox

    MessageBox 一.消息框是个很常用的控件,属性比较多,本文列出了它的一些常用方法,及指出了它的一些应用场合.1.MessageBox("这是一个最简单的消息框!");2.M ...

  4. Ue4如何在C++中获得获得当前角色的指针?

    #include "ThirdPersonPluginCharacter.h" #include "Kismet/GameplayStatics.h" //包含 ...

  5. 快学Java NIO

    Java NIO Tutorial 地址:http://tutorials.jenkov.com/java-nio/index.html Java NIO系列教程译文地址:http://ifeve.c ...

  6. 快速傅里叶变换FFT学习小记

    FFT学得还是有点模糊,原理那些基本还是算有所理解了吧,不过自己推这个推不动. 看的资料主要有这两个: http://blog.miskcoo.com/2015/04/polynomial-multi ...

  7. Storm与Spark:谁才是我们的实时处理利器

    Storm与Spark:谁才是我们的实时处理利器 ——实时商务智能目前已经逐步迈入主流,而Storm与Spark开源项目的支持无疑在其中起到了显著的推动作用.那么问题来了:实时处理到底哪家强? 实时商 ...

  8. Javascript 利用a标签自动解析URL分析网址实例

    /* * @function: 通过a标签解析url标签 * @param:url url参数是字符串,解析的目标 通过IE6-9 chrome Firefox测试 * */ function par ...

  9. android 百度地图 通过剪裁图片添加 Marker

    初始化百度地图: private void initViews() { mMapView = (MapView) findViewById(R.id.bmapView); mBaiduMap = mM ...

  10. ubifs总体设计分析

    1.     设计需求 flash设备区别与一般的块设备,有如下特点: 存在坏块 使用寿命较短 存储介质不稳定 读写速度慢 不支持随机访问(nand) 只能通过擦除将0改成1 最小读写单位为page ...