sql-server – 如何在SQL Azure Active Geo-Replication辅助节点上重新创建用户/登录

前端之家收集整理的这篇文章主要介绍了sql-server – 如何在SQL Azure Active Geo-Replication辅助节点上重新创建用户/登录前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的生产应用程序有一个Premium P2 sql Azure数据库,出于安全考虑,我创建了数据库特定模式/视图/角色以及用于从SSRS查询中读取数据的特定数据库用户帐户.

让我们只调用服务器PRIMARY和我的数据库MyApp

这个的安装脚本如下.

-- On Primary Master
CREATE LOGIN ssrsuser WITH password='******'

-- On Primary MyApp
CREATE USER ssrsuser FOR LOGIN ssrsuser 
CREATE ROLE [ssrsreader] AUTHORIZATION [db_owner]
GRANT SELECT ON SCHEMA :: [App] TO [ssrsreader]
GRANT SELECT ON SCHEMA :: [Reports] TO [ssrsreader]
EXEC sp_addrolemember 'ssrsreader','ssrsuser'

因此,我们的用户对Prod数据库施加了很大的负担,我们决定是时候将报告功能移到辅助同步从数据库了.

由于我们使用的是sql Azure Premium层,因此我们可以使用只读辅助副本启用Active Geo-Replication. In fact MS even say that it’s suitable for read-only workloads such as reporting.

所以我设置了SECONDARY服务器,启用了种子,它现在已经完成,我可以使用SECONDARY管理员用户和密码访问只读副本.

但是SECONDARY服务器没有ssrsuser的登录,而我可以在SECONDARY.master中创建一个,我不能DROP RECREATE用户,因为SECONDARY.MyApp数据库处于只读模式.

还有其他方法解决这个问题.我真的不想让SECONDARY服务器管理员用户&密码到SSRS连接字符串.

解决方法

无需在用户数据库中为ssruser重新生成SID.由于复制,它已经存在.您需要做的就是将该SID与辅助服务器中主服务器中的LOGIN相关联.本文提供了详细信息.
https://azure.microsoft.com/en-us/documentation/articles/sql-database-geo-replication-security-config/

我希望这有帮助.

猜你在找的MsSQL相关文章