dropConnectionsO comando
dropConnectionsdescarta as conexões demongodsaída da instância / para os hosts especificados.mongosO deve ser executadodropConnectionsnoadminbanco de dados.
Compatibilidade
Esse comando está disponível em implantações hospedadas nos seguintes ambientes:
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 |
|---|---|---|
| array | Cada elemento de array representa o nome do host e a porta de uma máquina remota. |
| 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 doadmincom 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 .