Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

killAllSessionsByPattern

Nesta página

  • Definição
  • Sintaxe
  • Compatibilidade
  • Campos de comando
  • Comportamento
  • Controle de acesso
  • Exemplos
killAllSessionsByPattern

Novidade na versão 3.6.

O comando killAllSessionsByPattern finaliza todas as sessões que correspondem a qualquer um dos padrões especificados. [1]

O comando tem a seguinte sintaxe:

db.runCommand(
{
killAllSessionsByPattern: [ <pattern>, ... ]
}
)

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

O comando usa um array de documentos que especificam os padrões a serem correspondidos:

Padrão
Descrição
{ lsid: { id : <UUID> } }
Especifique a parte UUID do ID da sessão a ser eliminada.
{ uid: <BinData> }
Especifica o hash do proprietário das sessões a serem eliminadas.
{ users: [ { user: <user>, db: <dbname> }, ... ] }
Especifica os proprietários das sessões a serem eliminadas. Exige privilégios adicionais. Consulte Controle de acesso.
{ roles: [ { role: <role>, db: <dbname> }, ... ] }
Especifica as roles atribuídas aos proprietários das sessões a serem eliminadas. Exige privilégios adicionais. Consulte Controle de acesso.

Especifique uma matriz vazia para finalizar todas as sessões. [1]

Para visualizar sessões existentes, consulte operação $listSessions ou $listLocalSessions.

Dica

Veja também:

[1](1, 2) A operação killAllSessionsByPattern ignora sessões que têm transações no estado preparado. Consulte Comportamento para ver detalhes.

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.

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 .

A operação killAllSessionsByPattern 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.

Se o sistema forçar autenticação/autorização, você deve ter a ação de privilégio killAnySession para executar o comando killAllSessionsByPattern .

Para padrões que incluem users ou roles, você também deve ter privilégios que concedam a ação impersonate no recurso de cluster.

Observação

Os usuários podem finalizar suas próprias sessões mesmo sem a ação de privilégio do killAnySession .

A operação a seguir finaliza todas as sessões:

db.runCommand( { killAllSessionsByPattern: [ ] } )

A operação a seguir finaliza todas as sessões que têm o uid especificado e cujo proprietário tem o role especificado:

db.runCommand( { killAllSessionsByPattern: [
{ "uid" : BinData(0,"oBRA45vMY78p1tv6kChjQPTdYsnCHi/kA/fFMZTIV1o=") },
{ roles: [ { role: "readWrite", db: "test" } ] }
] } )

Voltar

killAllSessions