Definição
dropConnectionsThe
dropConnectionscommand drops themongod/mongosinstance's outgoing connections to the specified hosts. ThedropConnectionsmust be run against theadmindatabase.
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
If the deployment enforces authentication/authorization, the dropConnections command requires the dropConnections action on the cluster resource.
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.
For example, the following operation creates a user-defined role on the admin database with the privileges to support 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" ] } )
The created user can execute 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 silently ignores hostAndPort elements that do not include both the hostname and port of the remote machine.
Exemplo
Consider a replica set with a recently removed member at oldhost.example.com:27017. Running the following dropConnections command against each active replica set member ensures there are no remaining outgoing connections to 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" : Long(0) } }, "operationTime" : Timestamp(1551375968, 1) }
Você pode confirmar o status do pool de conexões para mongod ou mongos usando o comando connPoolStats .