加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 如何在SQL Azure Active Geo-Replication辅助节点

发布时间:2020-12-12 06:27:36 所属栏目:MsSql教程 来源:网络整理
导读:我的生产应用程序有一个Premium P2 SQL Azure数据库,出于安全考虑,我创建了数据库特定模式/视图/角色以及用于从SSRS查询中读取数据的特定数据库用户帐户. 让我们只调用服务器PRIMARY和我的数据库MyApp 这个的安装脚本如下. -- On Primary MasterCREATE LOGIN
我的生产应用程序有一个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/

我希望这有帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读