Definición
Compatibilidad
Este comando está disponible en implementaciones alojadas en los siguientes entornos:
MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB
MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.
Sintaxis
El comando tiene la siguiente sintaxis:
db.adminCommand( { dropConnections: 1, hostAndPort : [ "host1:port1", "host2:port2", ... ], comment: <any> } )
Campos de comandos
El comando requiere el siguiente campo:
Campo | Tipo | Descripción |
|---|---|---|
| arreglo | Cada elemento del arreglo representa el nombre de host y el puerto de una máquina remota. |
| any | Opcional. Un comentario proporcionado por el usuario para adjuntar a este comando. Una vez configurado, este comentario aparece junto a los registros de este comando en las siguientes ubicaciones:
Un comentario puede ser de cualquier tipo BSON válido (string, objeto, arreglo, etc.). |
Control de acceso
Si la implementación exige autenticación/autorización, el comando dropConnections requiere la acción dropConnections en el recurso del clúster.
Cree un rol definido por el usuario en la base de datos admin donde el arreglo privilege incluya el siguiente documento:
{ "resource" : { "cluster" : true } }, "actions" : [ "dropConnections" ] }
Utiliza
db.createUser()para crear un usuario en la base de datosadmincon el rol personalizado.or
Use
db.grantRolesToUser()para otorgar el rol a un usuario existente en la base de datosadmin.
Por ejemplo, la siguiente operación crea un rol definido por el usuario en la admin base de datos con los privilegios para dropConnections admitir:
db.getSiblingDB("admin").createRole( { "role" : "dropConnectionsRole", "privileges" : [ { "resource" : { "cluster" : true }, "actions" : [ "dropConnections" ] } ], "roles" : [] } )
Asigne el rol personalizado a un usuario en la base de datos admin:
db.getSiblingDB("admin").createUser( { "user" : "dropConnectionsUser", "pwd" : "replaceThisWithASecurePassword", "roles" : [ "dropConnectionsRole" ] } )
El usuario creado puede dropConnections ejecutar.
Para ver más ejemplos de creación de usuarios, consulta Crear un usuario en implementaciones autogestionadas. Para ver un tutorial sobre cómo agregar privilegios a un usuario de base de datos existente, consulta Modificar el acceso para un usuario existente.
Comportamiento
dropConnections ignora silenciosamente hostAndPort los elementos que no incluyen tanto el nombre de host como el puerto de la máquina remota.
Ejemplo
Consideremos un conjunto de réplicas con un miembro eliminado recientemente oldhost.example.com:27017 en. Al ejecutar el siguiente comando en cada miembro activo dropConnections del conjunto de réplicas, nos aseguramos de que no queden conexiones salientes oldhost.example.com:27017 a:
db.adminCommand( { "dropConnections" : 1, "hostAndPort" : [ "oldhost.example.com:27017" ] } )
El comando devuelve una salida similar a la siguiente:
{ "ok" : 1, "$clusterTime" : { "clusterTime" : Timestamp(1551375968, 1), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : Long(0) } }, "operationTime" : Timestamp(1551375968, 1) }
Puedes confirmar el estado del pool de conexiones para la mongod o la mongos usando el comando connPoolStats.