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

killAllSessions

在此页面上

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

版本 3.6 中的新增功能

killAllSessions命令会终止指定用户的所有会话。 [ 1 ]

该命令具有以下语法:

db.runCommand(
{
killAllSessions: [ { user: <user>, db: <dbname> }, ... ]
}
)

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

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

重要

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

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

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

该命令接受一个文档数组,每个文档指定用户和用户的身份验证数据库。指定一个空数组会终止系统中所有用户的所有会话。[1]

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

提示

另请参阅:

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

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

注意

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

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

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

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

以下操作将终止系统中所有用户的所有会话:

db.runCommand( { killAllSessions: [ ] } )

以下操作将终止 db1 数据库中用户 appReaderdb2 数据库中用户 reportWriter 的所有会话:

db.runCommand( { killAllSessions: [
{ user: "appReader", db: "db1" },
{ user: "reportWriter", db: "db2" }
] } )

后退

endSessions