Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

killAllSessionsByPattern (comando de base de datos)

killAllSessionsByPattern

La killAllSessionsByPattern El comando elimina todas las sesiones que coincidan con alguno de los patrones especificados. []1

El comando tiene la siguiente sintaxis:

db.runCommand(
{
killAllSessionsByPattern: [ <pattern>, ... ]
}
)

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.

El comando toma un arreglo de documentos que especifican los patrones a hacer coincidir:

Patrón
Descripción

{ lsid: { id : <UUID> } }

Especifica la parte UUID del ID de sesión a finalizar.

{ uid: <BinData> }

Especifica el hash del propietario de las sesiones a eliminar.

{ users: [ { user: <user>, db: <dbname> }, ... ] }

Especifica los propietarios de las sesiones que se cerrarán. Requiere privilegios adicionales. Consulte Control de acceso.

{ roles: [ { role: <role>, db: <dbname> }, ... ] }

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.

Tip

[1](1, 2) La operación killAllSessionsByPattern ignora sesiones que tienen transacciones en estado preparado. Consulta Comportamiento para más detalles.

Matar una sesión mata cualquier operación en curso en la sesión y cierra cualquier cursor abierto asociado con estas operaciones.

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.

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.

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.

La siguiente operación mata todas las sesiones:

db.runCommand( { killAllSessionsByPattern: [ ] } )

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" } ] }
] } )

Volver

killAllSessions

En esta página