Overview
Las sesiones del servidor de MongoDB, o sesiones lógicas, son la estructura subyacente utilizada por las sesiones de cliente para proporcionar soporte coherencia causal y escrituras reintentables.
Importante
Las aplicaciones utilizan sesiones de cliente para interactuar con sesiones de servidor.
Las sesiones de servidor están disponibles solo para sets de réplicas y clústeres.
Opciones de comando
A partir de la versión 3.6, los drivers de MongoDB asocian todas las operaciones con una sesión del servidor, con excepción de los guardados no confirmados. Las siguientes opciones están disponibles para todos los comandos para soportar la asociación con una sesión de servidor:
Importante
mongosh Y los drivers asignan estas opciones a los comandos en la sesión.
Opción | Tipo | Descripción |
|---|---|---|
| Documento | El documento que especifica el ID único de la sesión asociada con el comando. Si se especifica el |
| entero de 64 bits | Un número estrictamente creciente y no negativo que identifica de manera única el comando en la sesión del comando. Si se especifica, el comando también debe incluir la opción |
Para los comandos delete, insert y update que leen un arreglo de instrucciones, también está disponible la siguiente opción:
Importante
No establezcas manualmente stmtIds. MongoDB establece que el stmtIds sea estrictamente creciente y no negativo.
Opción | Tipo | Descripción |
|---|---|---|
| Arreglo de enteros de 32 bits | Arreglo de números que identifican de manera única sus respectivas operaciones de escritura dentro del comando de escritura. |
Comandos de sesiones
Los siguientes comandos pueden utilizarse para listar, gestionar y finalizar las sesiones del servidor en todos los clústeres de MongoDB:
Comandos | Descripciones |
|---|---|
Expira las sesiones de servidor especificadas. | |
Termina todas las sesiones del servidor. | |
Elimina todas las sesiones del servidor que coinciden con el patrón especificado. | |
Elimina las sesiones del servidor especificadas. | |
Actualiza las sesiones inactivas del servidor. | |
Inicia una nueva sesión de servidor. |
Sesiones y control de acceso
Si la implementación aplica autenticación/autorización, el usuario debe estar autenticado para iniciar una sesión y solo ese usuario puede usar la sesión.
Para usar sesiones de cliente y garantías de coherencia causal con usuarios de autenticación $external (usuarios Kerberos, LDAP o X.509), los nombres de usuario no pueden superar los 10k bytes.
Si la implementación no aplica la autenticación/autorización, una sesión creada no tiene propietario y puede ser utilizada por cualquier usuario en cualquier conexión. Si un usuario se autentica y crea una sesión para una implementación que no requiere autenticación/autorización, ese usuario es el propietario de la sesión. Sin embargo, cualquier usuario en cualquier conexión puede usar la sesión.
Si la implementación pasa a autenticación sin ningún tiempo de inactividad, no se pueden usar las sesiones sin propietario.