SQL2005数据库镜像之数据库用户问题
2008-04-10 02:24
309 查看
数据库镜像是SQL Server 2005的一个新特性,它允许你将一个SQL Server中的数据库内容镜像到另一个SQL Server上。它还让你可以在发生错误的时候,通过镜像数据库来进行错误恢复。镜像的拷贝是一个备用的拷贝,不能直接访问,它只用在错误恢复的情况下。SQL2005的这一特性给数据库系统维护人员带来了不错的实惠,而给最终用户的体验也是不错的。至于如何配置数据库镜像系统,大家可以到TechNet 中文网络广播 中查找一下相关视频教程,尤其推荐大家去看看MVP牛可的相关讲座视频哦。再这里就不多说了。我们直奔主题吧!!
在使用数据库镜像功能时,如果我们使用的是工作组,那么我们需要注意一下数据库用户的问题:用普通方式创建的数据库用户,在主数据库中和镜像数据库中是有一些差异的,而这个差异最终会造成一个“奇怪”的结果,我们在主数据库和镜像数据库中对某数据库影射的“相同用户”,在发生故障转移后数据库验证会发生异常,称该用户无法登录我们的数据库,WHY? 原来是两个数据库中的同名用户在系统表syslogins中的sid不同造成的。解决方法就是在两个数据库上建立同名同sid的用户,具体方法如下:
假设有镜像的服务器是MIR-A和MI-B,要访问镜像数据库的登录账号是tom,使用下面这个方法就可以在MIR-A上创建登录名tom,然后在镜像数据库中创建数据库用户tom并映射到登录名tom
执行下列语句取回tom的sid
在使用数据库镜像功能时,如果我们使用的是工作组,那么我们需要注意一下数据库用户的问题:用普通方式创建的数据库用户,在主数据库中和镜像数据库中是有一些差异的,而这个差异最终会造成一个“奇怪”的结果,我们在主数据库和镜像数据库中对某数据库影射的“相同用户”,在发生故障转移后数据库验证会发生异常,称该用户无法登录我们的数据库,WHY? 原来是两个数据库中的同名用户在系统表syslogins中的sid不同造成的。解决方法就是在两个数据库上建立同名同sid的用户,具体方法如下:
假设有镜像的服务器是MIR-A和MI-B,要访问镜像数据库的登录账号是tom,使用下面这个方法就可以在MIR-A上创建登录名tom,然后在镜像数据库中创建数据库用户tom并映射到登录名tom
执行下列语句取回tom的sid
select [name], sid from syslogins where [name] = 'tom' ------ ----------------------------------------------- tom 0xD6AABCC8F83E3243A6C3C97F28A4CB55然后在MIR-B上用下面的语句创建登录名tom
sp_addlogin @loginame = 'tom', @passwd = 'password', @sid = 0xD6AABCC8F83E3243A6C3C97F28A4CB55
Ok,这样就没有问题了。
相关文章推荐
- SQL2005数据库镜像之数据库用户问题
- SQL2005数据库镜像之数据库用户问题
- SQL2005数据库镜像之数据库用户问题
- SQL还原数据库后孤立用户问题处理
- SQL 2008R2问题:用户、组或角色'XXX'在当前数据库中已存在?
- SQL还原数据库后孤立用户问题处理
- SQL还原数据库后孤立用户问题处理
- winform用户控件使用数据库dal层的问题
- oracle用户权限问题造成访问数据库出错
- Sql Server 2008 在备份还原后出现数据库“受限制用户”的问题解决
- 处理数据库镜像问题的一个案例——数据库主体与镜像断开连接
- 关于使用CreateUserWinzard控件创建用户时出现连接数据库问题的解决方法
- c#中连接数据库关于sqlconnection的用户sa无法登录的问题
- SQL还原数据库后孤立用户问题处理
- 基于play的用户登陆验验证和数据库的相关连接问题
- Apache James用户信息的数据库存储和密码问题
- sql server2008 数据库镜像的问题
- SQL还原数据库后孤立用户问题处理
- 解决还原数据库产生的孤立用户问题
- apache James用户信息的数据库存储和密码问题