killSessions
Definição
killSessions
Novidade na versão 3.6.
O comando
killSessions
finaliza as sessões especificadas. Se o controle de acesso estiver ativado, o comando só eliminará as sessões de propriedade do usuário. [1]
Sintaxe
O comando tem a seguinte sintaxe:
db.runCommand( { killSessions: [ { id : <UUID> }, ... ] } )
Compatibilidade
Esse comando está disponível em implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
Importante
Este comando não é suportado em clusters M0, M2 e M5 . Para obter mais informações, consulte Comandos não suportados.
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB
Campos de comando
O comando usa um array de documento que especificam a parte UUID do ID da sessão. Especifique uma array vazia [ ]
para finalizar todas as sessões ou, se o controle de acesso estiver habilitado, todas as sessões de propriedade do usuário. [1]
Para visualizar sessões existentes, consulte operação $listSessions
ou $listLocalSessions
.
[1] | (1, 2) A operação killSessions ignora sessões que têm transações no estado preparado. Consulte Comportamento para ver detalhes. |
Comportamento
Identificação da sessão
O MongoDB concatena cada um dos UUIDs especificados com o hash das credenciais do usuário autenticado para identificar as sessões do usuário a serem eliminadas. Se o usuário não tiver nenhuma sessão que corresponda, o killSessions
não terá efeito.
Operações em andamento
A eliminação de uma sessão elimina as operações em andamento na sessão e fecha os cursores abertos associados a essas operações.
Disponibilidade de sessão eliminada
A sessão eliminada ainda pode estar listada como uma sessão atual e operações futuras podem usar a sessão eliminada. Para visualizar sessões existentes, consulte operação $listSessions
ou $listLocalSessions
.
Sessões com transação no estado preparado
A operação killSessions
ignora sessões que possuem transações no estado preparado. As transações no estado preparado referem-se a transações com operações de gravação que abrangem vários shards cujo coordenador de confirmação concluiu o "sendingPrepare"
action
.
Exemplo
A operação a seguir finaliza a sessão especificada para o usuário:
db.runCommand( { killSessions: [ { id: UUID("f9b3d8d9-9496-4fff-868f-04a6196fc58a") } ] } )