Den*_*kin 3 sql-server availability-groups
我们正在使用可读的辅助副本配置可用性组。登录名可以使用其连接字符串中的“ApplicationIntent=ReadOnly”连接到辅助副本。但是我们遇到了一个问题,可能会让我们在未来头疼。
如果在登录建立连接时由于任何原因辅助副本不可用,则无论是否使用“ApplicationIntent=ReadOnly”,此登录都将被定向到主副本。
所以,我的问题 - 如果特定登录配置为使用辅助副本,是否有任何方法可以禁止它们连接到主副本?
我的意思是如果主要副本无法将连接定向到次要副本,则应关闭连接而不是继续处理主要副本。
Microsoft SQL Server 2016 (SP2-CU1) (KB4135048) - 13.0.5149.0 (X64) 2018 年 5 月 19 日 09:41:57 版权所有 (c) Microsoft Corporation Enterprise Edition:Windows Server 2016 Standard 上的基于内核的许可(64 位) 10.0(内部版本 14393:)
您可以在配置只读路由时通过设置“主要角色中的连接”设置来配置它。您有 2 个选择:
但是,此设置未在登录级别配置 - 这取决于您在问题的第一部分中所说的内容,即您的登录名在其连接字符串中使用 ApplicationIntent=ReadOnly 。
如果他们没有特别要求——也就是说,如果他们没有声明他们只会写——那么 SQL Server 无法快速知道他们在任何数据库中、任何对象上都没有可写权限。毕竟,他们甚至可以执行用证书签名的存储过程,而该证书可以允许他们进行写入。
因此,如果您真的想阻止他们登录,即使他们不使用 ApplicationIntent=ReadOnly,那么我只需禁用他们在主服务器上的登录即可。然后,每分钟在每个副本上运行一个代理作业,检查这个特定的副本是否是主副本。如果发生故障转移,并且此副本现在是主副本,请禁用仅报告登录。如果副本是次要的,并且仅报告登录被禁用,则启用它们。
如果您真的想禁用某人的登录,这当然会遇到问题 - 它会在一分钟内立即再次启用。
| 归档时间: |
|
| 查看次数: |
545 次 |
| 最近记录: |