killAllSessions
Definição
killAllSessions
Novidade na versão 3.6.
O comando
killAllSessions
finaliza todas as sessões para os usuários especificados. [1]
Sintaxe
O comando tem a seguinte sintaxe:
db.runCommand( { killAllSessions: [ { user: <user>, db: <dbname> }, ... ] } )
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 M0, M2, M5 e M10+ clusters. 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 documentos, em que cada documento especifica o usuário e o banco de dados de autenticação do usuário. Especifique uma matriz vazia para finalizar todas as sessões de todos os usuários no sistema. [1]
Para visualizar sessões existentes, consulte operação $listSessions
ou $listLocalSessions
.
[1] | (1, 2) A operação killAllSessions ignora sessões que têm transações no estado preparado. Consulte Comportamento para ver detalhes. |
Controle de acesso
Se o sistema forçar autenticação/autorização, faça killAnySession
executar o comando killAllSessions
.
Observação
Os usuários podem finalizar suas próprias sessões mesmo sem ação de privilégio do killAnySession
.
Comportamento
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 killAllSessions
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
.
Exemplos
killAllSessions
A operação a seguir finaliza todas as sessões para todos os usuários no sistema:
db.runCommand( { killAllSessions: [ ] } )
Eliminar todas as sessões para usuários específicos
A operação a seguir finaliza todas as sessões para o usuário appReader
no db1
e para o usuário reportWriter
em bancos de dados db2
:
db.runCommand( { killAllSessions: [ { user: "appReader", db: "db1" }, { user: "reportWriter", db: "db2" } ] } )