Definición
killAllSessionsEl 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 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.
Importante
Este comando no es compatible con los clústeres de MongoDB Atlas. Para obtener información sobre el soporte de Atlas para todos los comandos, consulta Comandos no compatibles.
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]
Ver sesiones existentes
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 que tienen Transacciones en estado preparado. Las transacciones en estado preparado se refieren a transacciones con operaciones de escritura que abarcan varias particiones, cuyo coordinador de confirmación ha completado el "sendingPrepare" action.
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" } ] } )