定義
killAllSessionskillAllSessionsコマンドは、指定されたユーザーのすべてのセッションを強制終了します。 []1
構文
このコマンドの構文は、次のとおりです。
db.runCommand( { killAllSessions: [ { user: <user>, db: <dbname> }, ... ] } )
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
重要
このコマンドは、MongoDB Atlas クラスターではサポートされていません。すべてのコマンドに対する Atlas のサポートについては、「サポートされていないコマンド」を参照してください。
コマンドフィールド
コマンドは、各ドキュメントがユーザーとユーザーの認証データベースを指定するドキュメントの配列を受け取ります。 システム内のすべてのユーザーのすべてのセッションを強制終了するには、空の配列 を指定します。 [1]
既存のセッションを表示
既存のセッションを表示するには、 $listSessions操作 または$listLocalSessionsを参照してください。
| [1] | (1 、2 ) killAllSessions操作は、トランザクションが準備状態にあるセッションを無視します。詳細については、「 動作 」を参照してください。 |
アクセス制御
配置で認証/認可が強制される場合、 コマンドを実行するにはkillAnySession killAllSessionsが必要です。
注意
ユーザーはkillAnySession特権アクションがなくても自分のセッションを強制終了できます。
動作
進行中の操作
セッションを強制終了すると、セッション内で進行中の操作がすべて終了され、これらの操作に関連付けられている開いているカーソルが閉じられます。
強制終了されたセッションの可用性
強制終了されたセッションは引き続き現在のセッションとして表示され、今後の操作では強制終了されたセッションが使用される可能性があります。 既存のセッションを表示するには、 $listSessions操作 または$listLocalSessionsを参照してください。
トランザクションが準備済み状態のセッション
killAllSessions操作は、トランザクションが準備状態にあるセッションを無視します。準備状態のトランザクションとは、コミット コーディネーターが を完了した複数のシャードにまたがる書込み操作を持つトランザクションを指します。"sendingPrepare" action
例
すべてのセッションを強制終了
次の操作は、システム内のすべてのユーザーのすべてのセッションを強制終了します。
db.runCommand( { killAllSessions: [ ] } )
特定のユーザーのすべてのセッションを強制終了
次の操作は、 データベース内のユーザーappReader db1とreportWriter データベース内のユーザーdb2 のすべてのセッションを強制終了します。
db.runCommand( { killAllSessions: [ { user: "appReader", db: "db1" }, { user: "reportWriter", db: "db2" } ] } )