Sessões do servidor
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 dar suporte à consistência causal e gravações repetíveis.
Importante
Os aplicativos usam sessões do cliente para interagir com sessões do servidor.
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 |
---|---|---|
lsid | Documento | O documento que especifica o ID exclusivo da sessão associada ao comando. Se txnNumber for especificado, lsid será obrigatório. |
txnNumber | 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
, insert
e 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 |
---|---|---|
stmtIds | 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 Client Sessions e Causal Consistency Guarantees 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.