dropConnections
Definição
dropConnections
O comando
dropConnections
descarta as conexões de saída da instânciamongod
/mongos
para os hosts especificados. OdropConnections
deve ser executado no banco de banco de dadosadmin
.
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
Observação
Este comando é suportado em todos os clusters do MongoDB Atlas. Para obter informações sobre todos os comandos, consulte Comandos sem suporte.
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
Sintaxe
O comando tem a seguinte sintaxe:
db.adminCommand( { dropConnections: 1, hostAndPort : [ "host1:port1", "host2:port2", ... ], comment: <any> } )
Campos de comando
O comando exige o seguinte campo:
Campo | Tipo | Descrição |
---|---|---|
hostAndPort | array | Cada elemento de array representa o nome do host e a porta de uma máquina remota. |
comment | any | Opcional. Um comentário fornecido pelo usuário para anexar a este comando. Depois de definido, esse comentário aparece junto com os registros desse comando nos seguintes locais:
Um comentário pode ser qualquer tipo BSON válido (string, inteiro, objeto, array etc). |
Controle de acesso
Se a implantação impuser autenticação/autorização, o comando dropConnections
exigirá a ação dropConnections
no recurso de cluster .
Crie um role definido pelo usuário no reconhecimento de data center admin
onde a array privilege
inclui o seguinte documento:
{ "resource" : { "cluster" : true } }, "actions" : [ "dropConnections" ] }
Utilize o
db.createUser()
para criar um usuário no banco de dados doadmin
com o papel personalizado.ou
Utilize
db.grantRolesToUser()
para conceder o role a um usuário existente no reconhecimento de data centeradmin
.
Por exemplo, a seguinte operação cria um papel definido pelo usuário no banco de banco de dados do admin
com os privilégios para suportar dropConnections
:
db.getSiblingDB("admin").createRole( { "role" : "dropConnectionsRole", "privileges" : [ { "resource" : { "cluster" : true }, "actions" : [ "dropConnections" ] } ], "roles" : [] } )
Atribuir a função personalizada a um usuário no reconhecimento de data center do admin
:
db.getSiblingDB("admin").createUser( { "user" : "dropConnectionsUser", "pwd" : "replaceThisWithASecurePassword", "roles" : [ "dropConnectionsRole" ] } )
O usuário criado pode executar dropConnections
.
Para obter mais exemplos de criação de usuário, consulte Criar um usuário em sistemas autogerenciados. Para obter um tutorial sobre como adicionar privilégios a um usuário de banco de dados de dados, consulte Modificar acesso para um usuário existente.
Comportamento
dropConnections
ignora silenciosamente elementos hostAndPort
que não incluem o nome do host e a porta da máquina remota.
Exemplo
Considere um conjunto de réplicas com um membro removido recentemente em oldhost.example.com:27017
. A execução do seguinte comando dropConnections
em cada membro do conjunto de réplicas ativas garante que não haja conexões de saída restantes para oldhost.example.com:27017
:
db.adminCommand( { "dropConnections" : 1, "hostAndPort" : [ "oldhost.example.com:27017" ] } )
O comando gera uma saída semelhante ao seguinte:
{ "ok" : 1, "$clusterTime" : { "clusterTime" : Timestamp(1551375968, 1), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : NumberLong(0) } }, "operationTime" : Timestamp(1551375968, 1) }
Você pode confirmar o status do pool de conexões para mongod
ou mongos
usando o comando connPoolStats
.