Docs 菜单

Docs 主页开发应用程序MongoDB Manual

killAllSessions

在此页面上

  • 定义
  • 语法
  • 访问控制
  • 行为
  • 举例
killAllSessions

版本 3.6 中的新增功能

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

该命令具有以下语法:

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

该命令接受一个文档数组,每个文档指定用户和用户的身份验证数据库。指定一个空数组会终止系统中所有用户的所有会话。[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