killAllSessionsByPattern
¶3.6版的新功能。
该killAllSessionsByPattern
命令将杀死与任何指定模式匹配的所有会话。[1]
该命令具有以下语法:
该命令采用一系列文档,这些文档指定要匹配的模式:
图案 | 描述 |
---|---|
{ lsid: { id : <UUID> } } |
指定要杀死的会话ID的UUID部分。 |
{ uid: <BinData> } |
指定要杀死的会话的所有者的哈希。 |
{ users: [ { user: <user>, db: <dbname> }, ... ] } |
指定要杀死的会话的所有者。需要其他特权。请参阅 访问控制。 |
{ roles: [ { role: <role>, db: <dbname> }, ... ] } |
指定分配给要杀死的会话所有者的角色。需要其他特权。请参阅 访问控制。 |
指定一个空数组以终止所有会话。[1]
要查看现有会话,请参阅$listSessions
操作或
$listLocalSessions
。
也可以看看
[1] | (1,2)的killAllSessionsByPattern 操作忽略具有会话
交易中的准备状态。有关详细信息,请参见行为。 |
终止会话将终止会话中正在进行的所有操作,并关闭与这些操作关联的所有打开的游标。
被终止的会话可能仍被列为当前会话,以后的操作可能会使用被终止的会话。要查看现有会话,请参阅
$listSessions
操作或$listLocalSessions
。
该killAllSessionsByPattern
操作将忽略具有处于准备状态的事务的会话。处于准备状态的事务是指具有跨越多个分片的写操作的事务,这些分片的提交协调器已完成。"sendingPrepare"
action
如果部署强制执行身份验证/授权,则必须具有killAnySession
运行
killAllSessionsByPattern
命令。
对于包含users
或的模式roles
,您还必须具有授予impersonate
对群集资源的操作权限的特权。
注意
即使没有killAnySession
特权操作,用户也可以杀死自己的会话
。