killAllSessions
定義
killAllSessions
バージョン 3.6 の新機能。
killAllSessions
コマンドは、指定されたユーザーのすべてのセッションを強制終了します。 [ 1 ]
構文
このコマンドの構文は、次のとおりです。
db.runCommand( { killAllSessions: [ { user: <user>, db: <dbname> }, ... ] } )
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
重要
このコマンドは、M 0 、M 2 、M 5 、M 10 + クラスターではサポートされていません。 詳細については、「サポートされていないコマンド 」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
コマンドフィールド
コマンドは、各ドキュメントがユーザーとユーザーの認証データベースを指定するドキュメントの配列を受け取ります。 システム内のすべてのユーザーのすべてのセッションを強制終了するには、空の配列 を指定します。 [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" } ] } )