Definition
killAllSessionsNew in version 3.6.
The
killAllSessionscommand kills all sessions for the specified users. [1]
Syntax
The command has the following syntax:
db.runCommand( { killAllSessions: [ { user: <user>, db: <dbname> }, ... ] } )
The command takes an array of documents where each document specifies the user and the user's authentication database. Specify an empty array to kill all sessions for all users in the system. [1]
To view existing sessions, see $listSessions operation
or $listLocalSessions.
| [1] | (1, 2) The killAllSessions operation ignores sessions that have
transactions in prepared state.
See Behavior for details. |
Access Control
If the deployment enforces authentication/authorization, you must have
the killAnySession to run the
killAllSessions command.
Note
Users can kill their own sessions even without
killAnySession privilege action.
Behavior
In-progress Operations
Killing a session kills any in-progress operations in the session and closes any open cursors associated with these operations.
Killed Session Availability
The killed session may still be listed as a current session, and future
operations may use the killed session. To view existing sessions, see
$listSessions operation or $listLocalSessions.
Sessions with Transactions in Prepared State
The killAllSessions operation ignores sessions that have transactions in prepared state. Transactions in prepared state
refer to transactions with write operations that span multiple shards
whose commit coordinator has completed the "sendingPrepare"
action.
Examples
Kill All Sessions
The following operation kills all sessions for all users in the system:
db.runCommand( { killAllSessions: [ ] } )
Kill All Sessions for Specific Users
The following operation kills all sessions for the user appReader
in the db1 and the user reportWriter in db2 databases:
db.runCommand( { killAllSessions: [ { user: "appReader", db: "db1" }, { user: "reportWriter", db: "db2" } ] } )