killSessions
定义
killSessions
的
killSessions
命令终止指定的会话。如果启用了访问控制,则该命令只终止用户拥有的会话。[1]
语法
该命令的语法如下
db.runCommand( { killSessions: [ { id : <UUID> }, ... ] } )
兼容性
此命令可在以下环境中部署的以下环境中使用
MongoDB Atlas:云中MongoDB部署的全托管服务
重要
此命令不支持M0、M2和M5集群。有关更多信息,请参阅不受支持的命令。
MongoDB Enterprise:基于订阅的自托管MongoDB版本
MongoDB Community:源代码可用、免费使用且可自托管的MongoDB版本
命令字段
该命令接受一个文档数组,指定会话ID的UUID部分。指定空数组[ ]
以终止所有会话,或在启用访问控制的情况下,终止所有由用户拥有的会话。[1]
查看现有会话
要查看现有会话,请参阅 $listSessions
操作或 $listLocalSessions
.
[1] | (1, 2) killSessions 操作会忽略处于准备状态的事务会话。有关详细信息,请参阅 行为。 |
行为
会话识别
MongoDB 将每个指定的 UUID 与认证用户凭证的哈希值连接起来,以识别要终止的用户会话。如果没有匹配的会话,则 killSessions
无效。
进行中的操作
终止一个会话将终止会话中所有进行中的操作并关闭与这些操作相关的任何打开的光标。
终止的会话可用性
被终止的会话可能仍然被列为当前会话,并且未来的操作可能会使用被终止的会话。要查看现有会话,请参阅$listSessions
操作或$listLocalSessions
。
处于准备状态的事务会话
killSessions
操作会忽略处于准备状态的事务会话。准备状态的事务指的是跨越多个分片且其提交协调器已完成"sendingPrepare" action
的写操作事务。
示例
以下操作终止指定用户的会话
db.runCommand( { killSessions: [ { id: UUID("f9b3d8d9-9496-4fff-868f-04a6196fc58a") } ] } )