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. PHP学习之字符串

    1.字符串变量用于存储并处理文本: 2.字符串变量用于包含有字符的值,在创建字符串后,就可以对它进行操作了,可以直接在函数中使用字符串,或把它存储在变量中: <?php $txt="H ...

  2. 模数转换(A/D)和数模转换(D/A) 图示

    (从书中截图) 在时间域和频率域中示意图: 1.A/D转换 2.D/A转换

  3. DSP using MATLAB 示例Example2.11

    上代码: b = [1]; a = [1, -1, 0.9]; n = [-20:120]; h = impz(b,a,n); set(gcf,'Color','white'); %subplot(2 ...

  4. 判断密文加密类型hash-identifier

    判断密文加密类型hash-identifier   在安全领域中,加密数据随处可见.而在这些数据中,重要的数据往往采用哈希算法进行加密.例如,Linux密码使用sha512,Windows密码采用LM ...

  5. vs2010 安装MVC 3.0

    下载链接如下: MVC 3安装包:http://www.microsoft.com/downloads/zh-cn/details.aspx?familyid=d2928bc1-f48c-4e95-a ...

  6. MFC 程序以管理员权限运行

    首先,VS打开项目的属性 然后设置如图: 转载自:http://www.cnblogs.com/zzuhjf/archive/2012/09/12/2681548.html

  7. UVa1515 Pool construction(最小割)

    题目 Source https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_pr ...

  8. js中typeof与instanceof区别

    今天写JS代码,遇到动态生成多个名称相同的input复选按钮 需要判断其是否是数组,用到了if (typeof(document.MapCheckMgr.checkid)!="undefin ...

  9. Storm配置项详解【转】

    Storm配置项详解 ——阿里数据平台技术博客:storm配置项详解 什么是Storm? Storm是twitter开源的一套实时数据处理框架,基于该框架你可以通过简单的编程来实现对数据流的实时处理变 ...

  10. POJ 3320 (尺取法+Hash)

    题目链接: http://poj.org/problem?id=3320 题目大意:一本书有P页,每页有个知识点,知识点可以重复.问至少连续读几页,使得覆盖全部知识点. 解题思路: 知识点是有重复的, ...