killAllSessions
Definition
killAllSessions
The
killAllSessions
command kills all sessions for the specified users. [1]
Syntax
The command has the following syntax:
db.runCommand( { killAllSessions: [ { user: <user>, db: <dbname> }, ... ] } )
Command Fields
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]
View Existing Sesssions
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" } ] } )