如何在SQL Azure Active Geo Replication Secondary上重新创建用户/登录名



我的生产应用程序有一个高级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 DB上加载了大量负载,我们决定是时候将报告功能转移到辅助同步的从属数据库了。

由于我们使用的是SQL Azure高级层,因此我们可以使用只读辅助副本启用Active Geo复制。事实上,MS甚至说它适用于只读工作负载,如报告。

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

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

还有其他办法绕过这个吗。我真的不想让CCD_ 10服务器管理员用户&密码转换为SSRS连接字符串。

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

我希望这能有所帮助。

相关内容

  • 没有找到相关文章

最新更新