【问题标题】:SQL Server 2016 Read Only Replica With Different Database Security具有不同数据库安全性的 SQL Server 2016 只读副本
【发布时间】:2018-12-19 00:13:02
【问题描述】:

是否可以拥有一个不用作故障转移服务器的 SQL 2016 只读副本,其数据库安全性与主服务器不同?

我想确保用户无权访问主节点,只有只读访问权限。

【问题讨论】:

    标签: sql-server cluster-computing sql-server-2016 readonly failover


    【解决方案1】:

    是否可以有一个不用作故障转移服务器的 SQL 2016 只读副本

    是的。但是你需要详细说明。例如,如果它处于异步模式,则只能进行手动故障转移。这有点就像不将其用作故障转移服务器,因为您必须物理强制它。见failover and failover modes.

    是否可以有一个 SQL 2016 只读副本具有不同的 数据库安全性高于主

    是的。事实上,AlwaysOn AG 令人讨厌的部分之一是同步登录。大多数人都希望他们匹配。这就是为什么many people have blogged ways 和其他人 have created tools 在 powershell 中执行此操作以及同步代理作业、警报等的原因。

    我要确保用户无权访问主节点

    由于副本作为主服务器位于不同的服务器上,因此您可以轻松地在实例之间保持权限分离。只需让您的用户登录到副本实例和数据库,而不是主实例和数据库。请记住,服务器登录和用户映射有所不同。对于您的 RoR,您的用户将需要一个服务器登录,然后将他们的用户 ID 映射到您的副本。

    我想确保用户只有只读权限。

    因为它已经是只读的,所以这是他们唯一的访问权限。即使他们是系统管理员,他们也无法更新/删除/插入(当然,除非他们将其更改为只读)

    【讨论】:

    • 我们的分析用户需要访问生产数据,但不希望他们影响生产系统。目前,我们每晚备份所有数据库并将它们恢复到“报告”数据库,然后应用脚本更改安全性以授予它们访问权限。我们目前有一个始终在线的具有自动故障转移功能的同步集群。我想将现有的辅助节点用作只读节点,或者在这些用户可以查询的地方创建第三个异步只读而不用于故障转移。我希望对生产性能的影响最小。
    • 只是为了确认复制发生在数据库级别,我可以在数据库本身上定义不同的安全性还是必须在服务器级别完成?
    • 您可以在数据库级别执行此操作。如果您愿意,您实际上可以深入到对象级别并仅授予对某些表的访问权限。如果您想获得更精细的信息,还可以使用行级安全性。
    猜你喜欢
    • 1970-01-01
    • 2020-05-06
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多