Definición
killAllSessionsNovedades en la versión 3.6.
El comando
killAllSessionsmata todas las sesiones para los usuarios especificados. [1]
Sintaxis
El comando tiene la siguiente sintaxis:
db.runCommand( { killAllSessions: [ { user: <user>, db: <dbname> }, ... ] } )
Compatibilidad
Este comando está disponible en implementaciones alojadas en los siguientes entornos:
MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube
Importante
Este comando no es compatible con los clústeres M0, M2, M5 y M10+ Para obtener más información, consulta Comandos no admitidos.
MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB
MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.
Campos de comandos
El comando toma un arreglo (array) de documentos donde cada documento especifica el usuario y la base de datos de autenticación del usuario. Especifique un arreglo vacío para eliminar todas las sesiones de todos los usuarios en el sistema. [1]
Para ver las sesiones existentes, consulta la operación $listSessions o $listLocalSessions.
| [1] | (1, 2) La operación killAllSessions ignora sesiones que tienen transacciones en estado preparado. Consulta Comportamiento para más detalles. |
Control de acceso
Si la implementación aplica autenticación/autorización, debe tener el killAnySession para ejecutar el comando killAllSessions.
Nota
Los usuarios pueden terminar sus propias sesiones incluso sin la acción de privilegio killAnySession.
Comportamiento
Operaciones en curso
Matar una sesión mata cualquier operación en curso en la sesión y cierra cualquier cursor abierto asociado con estas operaciones.
Disponibilidad de sesión matada
La sesión matada puede seguir apareciendo como una sesión actual, y las operaciones futuras pueden utilizar la sesión matada. Para ver las sesiones existentes, consulta la $listSessions operación o la $listLocalSessions.
Sesiones con transacciones en estado preparado
La killAllSessions operación ignora las sesiones con transacciones en estado preparado. Las transacciones en estado preparado se refieren a transacciones con operaciones de escritura que abarcan varios fragmentos cuyo coordinador de confirmación ha completado "sendingPrepare"
action la operación.
Ejemplos
Terminar todas las sesiones
La siguiente operación termina todas las sesiones de todos los usuarios en el sistema:
db.runCommand( { killAllSessions: [ ] } )
Eliminar todas las sesiones para usuarios específicos
La siguiente operación elimina todas las sesiones del usuario appReader en el/la db1 y del usuario reportWriter en la base de datos db2:
db.runCommand( { killAllSessions: [ { user: "appReader", db: "db1" }, { user: "reportWriter", db: "db2" } ] } )