Eoi*_*ell 8 sql-server azure reporting-services geo-replication azure-sql-database
我的生产应用程序有一个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'
Run Code Online (Sandbox Code Playgroud)
因此,我们的用户对Prod数据库施加了很多负载,我们认为是时候将报告功能移到辅助同步从数据库了.
由于我们使用的是SQL Azure Premium层,因此我们可以使用只读辅助副本启用Active Geo-Replication.实际上MS甚至说它适用于只读工作负载,例如报告.
所以我设置了SECONDARY服务器,启用了播种,它现在已经完成,我可以使用SECONDARY管理员用户和密码访问只读副本.
但是SECONDARY服务器没有登录,ssrsuser而我可以创建一个SECONDARY.master,我不能DROP RECREATE用户,因为SECONDARY.MyApp数据库处于只读模式.
有没有其他方法来解决这个问题.我真的不想将SECONDARY服务器管理员用户和密码放入SSRS连接字符串.
小智 11
无需在用户数据库中为ssruser重新生成SID.它已经在复制的结果.您需要做的就是将该SID与辅助服务器中主服务器中的LOGIN相关联.本文提供了详细信息. https://azure.microsoft.com/en-us/documentation/articles/sql-database-geo-replication-security-config/
我希望这有帮助.
| 归档时间: |
|
| 查看次数: |
2144 次 |
| 最近记录: |