Visão geral
As sessões de servidor do MongoDB, ou sessões lógicas, são a estrutura subjacente usada por sessões de cliente para oferecer suporte à consistência causal e gravações repetÃveis.
Importante
Esta página descreve sessões do servidor. Aplicativos realizam interação com sessões do servidor por meio de sessões do cliente. Os métodos que você pode chamar em um objeto de sessão do cliente, como Session.getDatabase(), estão documentados na referência Session().
As sessões de servidor estão disponÃveis apenas para conjuntos de réplica e clusters fragmentados.
Opções de comando
A partir da versão 3.6, os drivers MongoDB associam todas as operações a uma sessão do servidor, com exceção de gravações não reconhecidas. As seguintes opções estão disponÃveis para todos os comandos para suportar a associação com uma sessão do servidor:
Importante
mongosh e os drivers atribuem essas opções aos comandos da sessão.
Opção | Tipo | Descrição |
|---|---|---|
| Documento | O documento que especifica o ID exclusivo da sessão associada ao comando. Se |
| Inteiro de 64 bits | Um número não negativo estritamente crescente que identifica exclusivamente o comando na sessão do comando. Se especificado, o comando também deverá incluir a opção |
Para os comandosdelete, inserte update que usam uma array de instruções, a seguinte opção também está disponÃvel:
Importante
Não defina manualmente stmtIds. O MongoDB define a stmtIds para ser estritamente números não negativos crescentes.
Opção | Tipo | Descrição |
|---|---|---|
| array de inteiros de 32 bits | Array de números que identificam exclusivamente suas respectivas operações de escrita dentro do comando de escrita. |
Comandos de sessões
Os seguintes comandos podem ser usados para listar, gerenciar e matar sessões de servidor em clusters MongoDB:
Comandos | Descrição |
|---|---|
Expira sessões de servidor especificadas. | |
Mata todas as sessões do servidor. | |
Elimina todas as sessões do servidor que correspondem ao padrão especificado. | |
Mata sessões de servidor especificadas. | |
Atualiza sessões de servidor ociosas. | |
Inicia uma nova sessão de servidor. |
Sessões e controle de acesso
Se a implantação impor autenticação/autorização, o usuário deverá ser autenticado para iniciar uma sessão, e somente esse usuário poderá usar a sessão.
Para usar Sessões de cliente e garantias de consistência causal com usuários de autenticação $external (usuários Kerberos, LDAP ou X.509), os nomes de usuário não podem ter mais de 10k bytes.
Se a implantação não impor autenticação/autorização, uma sessão criada não terá proprietário e poderá ser usada por qualquer usuário em qualquer conexão. Se um usuário autenticar e criar uma sessão para uma implantação que não imponha autenticação/autorização, esse usuário será o proprietário da sessão. No entanto, qualquer usuário em qualquer conexão pode usar a sessão.
Se a implantação fizer a transição para a autenticação sem nenhum tempo de inatividade, as sessões sem proprietário não poderão ser usadas.
Dica