killAllSessions
On this page本页内容
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
.
See also:
[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.
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" }
] } )