Definición
killAllSessionsByPatternEl comando elimina todas las sesiones que coincidan con cualquiera de los patrones
killAllSessionsByPatternespecificados. []1
Sintaxis
El comando tiene la siguiente sintaxis:
db.runCommand( { killAllSessionsByPattern: [ <pattern>, ... ] } )
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 y Flex. Para obtener más información, consulta Comandos no compatibles.
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 de documentos que especifican los patrones a hacer coincidir:
Patrón | Descripción |
|---|---|
| Especifica la parte UUID del ID de sesión a finalizar. |
| Especifica el hash del propietario de las sesiones a eliminar. |
| Especifica los propietarios de las sesiones que se cerrarán. Requiere privilegios adicionales. Consulte Control de acceso. |
| Especifica los roles asignados a los propietarios de las sesiones a eliminar. Requiere privilegios adicionales. Consulta Control de acceso. |
Especifique una matriz vacía para eliminar todas las sesiones. [1]
Para ver las sesiones existentes, consulta la operación $listSessions o $listLocalSessions.
| [1] | (1, 2) La operación killAllSessionsByPattern ignora sesiones que tienen transacciones en estado preparado. Consulta Comportamiento para más detalles. |
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 killAllSessionsByPattern 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.
Control de acceso
Si la implementación aplica autenticación/autorización, debes tener la acción de privilegio killAnySession para ejecutar el comando killAllSessionsByPattern.
Para patrones que incluyan users o roles, también debes tener privilegios que concedan la acción impersonate en el recurso del clúster.
Nota
Los usuarios pueden matar sus propias sesiones incluso sin la killAnySession acción del privilegio.
Ejemplos
Terminar todas las sesiones
La siguiente operación mata todas las sesiones:
db.runCommand( { killAllSessionsByPattern: [ ] } )
Eliminar todas las sesiones para usuarios específicos
La siguiente operación elimina todas las sesiones que tienen el uid especificado y cuyo propietario tiene el rol especificado:
db.runCommand( { killAllSessionsByPattern: [ { "uid" : BinData(0,"oBRA45vMY78p1tv6kChjQPTdYsnCHi/kA/fFMZTIV1o=") }, { roles: [ { role: "readWrite", db: "test" } ] } ] } )