Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

killAllSessionsByPattern

在此页面上

  • 定义
  • 语法
  • 兼容性
  • 命令字段
  • 行为
  • 访问控制
  • 示例
killAllSessionsByPattern

版本 3.6 中的新增功能

killAllSessionsByPattern命令会终止与任何指定模式匹配的所有会话。 [ 1 ]

该命令具有以下语法:

db.runCommand(
{
killAllSessionsByPattern: [ <pattern>, ... ]
}
)

此命令可用于以下环境中托管的部署:

  • MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务

重要

M 0 、M 2和 M 5集群不支持此命令。 有关更多信息,请参阅不支持的命令。

  • MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本

  • MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本

该命令接受指定要匹配模式的文档数组:

模式
说明
{ lsid: { id : <UUID> } }
指定要终止的会话 ID 的 UUID 部分。
{ uid: <BinData> }
指定要终止的会话所有者的哈希值。
{ users: [ { user: <user>, db: <dbname> }, ... ] }
指定要终止的会话的所有者。 需要额外权限。 请参阅访问控制。
{ roles: [ { role: <role>, db: <dbname> }, ... ] }
指定分配给要终止的会话所有者的角色。 需要额外权限。 请参阅访问控制。

指定一个空数组以终止所有会话。 [1]

要查看现有会话,请参阅$listSessions操作或$listLocalSessions

提示

另请参阅:

[1]12 killAllSessionsByPattern操作会忽略事务处于准备状态的会话。 有关详细信息,请参阅行为

终止会话会终止会话中所有进行中的操作,并关闭与这些操作关联的所有打开的游标。

被终止的会话可能仍会列为当前会话,并且将来的操作可能会使用被终止的会话。 要查看现有会话,请参阅$listSessions操作或$listLocalSessions

killAllSessionsByPattern操作会忽略事务处于准备状态的会话。 处于准备状态的事务是指具有跨多个分片的写入操作的事务,这些分片的提交协调器已完成"sendingPrepare" action

如果部署强制执行身份验证/授权,则您必须具有killAnySession特权操作才能运行killAllSessionsByPattern命令。

对于包含usersroles的模式,您还必须具有授予对集群资源执行impersonate操作的权限。

注意

即使没有killAnySession权限操作,用户也可以终止自己的会话。

以下操作会终止所有会话:

db.runCommand( { killAllSessionsByPattern: [ ] } )

以下操作会终止具有指定uid且所有者具有指定角色的所有会话:

db.runCommand( { killAllSessionsByPattern: [
{ "uid" : BinData(0,"oBRA45vMY78p1tv6kChjQPTdYsnCHi/kA/fFMZTIV1o=") },
{ roles: [ { role: "readWrite", db: "test" } ] }
] } )

后退

killAllSessions