SQL Server AlwaysOn部署后的主从数据库用户映射问题

SQL Server AlwaysOn部署后的主从数据库用户映射问题

      • 问题
      • 原因
      • 解决办法
        • 1. 笨办法
        • 2. 好办法

问题

在部署完Sql Server Always on之后,遇到用户登陆SQL数据库的问题,用户分为两种,一种windows用户验证登陆,一种是SQL Server登陆用户登陆,前者映射没有问题,但是通过第二种方式登陆时出现了问题:DB01主库 DB02从库 ,业务数据库CRM, 01创建完用户 映射CRM数据库之后,切换到02库 创建用户,映射CRM数据库时 提示映射用户已存在。

原因

这是因为CRM数据库已经和DB01做了映射关系,虽然DB02的登陆用户名一样,但是SID不一致,在DB02上用相同的名字去映射CRM库时就会出现一样的名字,映射存在。

解决办法

1. 笨办法

在02数据库创建登陆用户时名字和DB01做区分,映射数据完了之后,再将登陆名改为一样的。这样就可以通过监听来直接登陆到高可用组的数据库。缺点:每次修改用户权限都要调整两次 而且还需要切换主从库。

2. 好办法

既然在DB02上创建映射时 是因为名字一样,SID不一样,那么我们可以保持DB02的登陆用户名字和sid和DB01的一样就可以了。

  1. 查询DB01上的登录用户sid:
select sid,name,* from sys.syslogins
  1. 在DB02上创建一样的账号:
create login [登陆用户名] with password = '密码',
SID = sid,
default_database = [CRM_MSCRM], --- 默认数据库
check_expiration =OFF, --- 强制密码过期 
check_policy = OFF   ---- 强制密码策略

运行,查看,完美解决问题。

你可能感兴趣的:(SQL,Server,数据库,sqlserver,sql)