从 SQL Server 2008 开始,有一个用户msdb
名为MS_DataCollectorInternalUser
. 此用户没有与此关联的登录名,可以被视为孤儿用户。
删除孤儿用户是一种安全最佳实践。
MS_DataCollectorInternalUser
不能仅使用 TSQL 命令删除,因为DROP USER
它已将数据库权限授予IMPERSONATE
名为dc_admin
.
我们不使用 SQL Server 的数据收集器功能。
你有什么建议?
从 SQL Server 2008 开始,有一个用户msdb
名为MS_DataCollectorInternalUser
. 此用户没有与此关联的登录名,可以被视为孤儿用户。
删除孤儿用户是一种安全最佳实践。
MS_DataCollectorInternalUser
不能仅使用 TSQL 命令删除,因为DROP USER
它已将数据库权限授予IMPERSONATE
名为dc_admin
.
我们不使用 SQL Server 的数据收集器功能。
你有什么建议?
MS_DataCollectorInternalUser
不是孤立用户。是没有登录的用户,另类的野兽。我建议您更新您的安全实践,您可能已经删除了其他有效的非孤立用户。除非您有特定的安全公告引用删除或修改此用户的理由,否则您应该保留它。我找不到来自 Microsoft 网站的参考,但根据Alfred Songy的博客文章。 MS_DataCollectorInternalUser与数据收集器有关。它是故意创建的没有 SQL 登录的用户帐户,并且没有登录创建的用户显然无法连接到数据库,因此我没有看到安全风险。我的建议是不应该删除删除,修改系统数据库中的任何内容不是一个好主意。:)
下面的这个查询有助于识别孤立的 SQL Server 用户。
在我们知道我们将删除哪些用户之后,考虑到需要首先删除与模式和数据库角色的关联,可以使用以下脚本删除孤立用户。
以下是对 SQL Server 实例中的所有数据库执行它的方法:
另一个有用的链接可以解决您的问题
希望我的回答有帮助!