SQL 服务器包含的用户如何获得所有活动用户连接到此包含的数据库?(sys.dm_exec_sessions 没有获得所有结果?)

How can a SQL Server contained user get all active user connections to this contained database?(sys.dm_exec_sessions not getting all the results?)

以前使用SQL服务器登录时,可以通过以下步骤完成:

  1. 运行 GRANT VIEW SERVER STATE TO /*server_login */master 数据库中
  2. 然后 运行 select * from sys.dm_exec_sessions 为“server_login”。

它将获得所有连接,包括到我的目标数据库的所有连接。

现在迁移到“包含数据库”的“包含用户”,我试过这个:

  1. 运行 GRANT VIEW DATABASE STATE TO /*contained_user */ 在我的目标数据库中
  2. 然后 运行 select * from sys.dm_exec_sessions 作为“包含的用户”

它只会看到我自己,不会看到与此目标数据库的其他活动连接。

SQL Server 2019 中的数据库。要允许包含的用户查看与该数据库的所有活动连接,我需要哪些选项?

对于SQL 服务器,仍然需要VIEW SERVER STATE 权限。 Azure 数据库不同。我今天设置了 Azure 数据库以验证 VIEW DATABASE STATE 是否足够。