Joh*_*ohn 13 sql-server sql-server-2012 availability-groups logins
我们在 AlwaysOn 组中有 2 台服务器。
虽然每个同步数据库中的用户帐户都存在于两台服务器上,但数据库实例级登录仅存在于其中一台服务器上。即 DBINSTANCE->Security->Logins 在一台服务器上丢失。
因此,当发生故障转移时,我会在第二台服务器(没有相应的实例级别登录)上登录失败。
我如何克服这个问题?我应该以特殊方式设置用户帐户吗?
Mar*_*ith 15
我的理解是,如果您不使用Contained Databases,则必须确保在其他实例上手动创建登录名。
类似于SQLSoldier的脚本,最初发布在文章Transferring Logins to a Database Mirror 上,应该可以解决问题。
您必须使用包含的数据库,或者必须使用相同的密码哈希和 SID 在其他服务器上重新创建用户。
Microsoft 提供了执行此操作的脚本: 如何在 SQL Server 实例之间传输登录名和密码
Mark 的解决方案部分正确,但他推荐的解决方案是针对镜像数据库,而不是问题所要求的 AlwaysOn。