今天我们发现我们的两个 SQL Server(都是 2017 CU21)正在接受来自任何随机域帐户的连接,即使是那些绝对没有直接登录或通过 AD 组成员身份访问的那些。
在每台服务器上都有一个用户数据库,允许这些随机域帐户进行连接。
根据我们看到的配置,我们预计任何随机域帐户(即任何在实例上没有登录名的帐户)都会出现登录失败,除此之外,还会阻止连接到用户数据库。
对于这些数据库,来宾帐户被禁用,但我们已经执行了良好的措施:
REVOKE CONNECT FROM guest
这没什么区别。
所以两个问题:
- 我们如何关闭/阻止这些公共连接成功?
- 什么 TSQL 语句可以向我们展示有问题的配置?
到目前为止我们已经看过的东西:
- “公共”服务器角色似乎具有默认配置,与我们所有其他不存在问题的服务器相同
- 来宾用户在所有数据库和服务器上肯定显示为禁用
- “公共”数据库角色只有我们期望看到的默认权限
- 每台服务器上只有 1 个用户数据库(加上 master 和 msdb 和 tempdb)可供这些随机帐户访问——所有其他数据库的行为都正常,即帐户无法连接到它们。
- 数据库包含类型设置为“无”是所有情况。
- 两台服务器上都没有覆盖所有域用户的登录名
一些上下文:这两个服务器是相关的——它们是同一应用程序的 DEV 和 PROD 服务器。这种配置很可能是出于某种历史原因而故意进行的——但现在在这里工作的人都不知道为什么,所以我们想禁用这种公共访问。