¿Cómo puede crear usuarios para la base de datos de un cluster de MongoDB?

Angel M 0 Puntos de reputación
2024-11-28T10:06:04.7833333+00:00

Estoy intentando crear distintos usuarios con roles específicos en un clúster de MongoDB en Azure. Sin embargo, no he podido encontrar la opción para hacerlo desde los ajustes de Azure y desde la interfaz de la base de datos tampoco he podido.

¿Podrían indicarme cómo realizar esta configuración correctamente?

Agradezco mucho su ayuda.

Un saludo y gracias.

Azure
Azure
Plataforma e infraestructura de informática en la nube para crear, implementar y administrar aplicaciones y servicios a través de una red mundial de centros de datos administrados por Microsoft.
595 preguntas
0 comentarios No hay comentarios
{count} votos

7 respuestas

Ordenar por: Lo más útil
  1. Gao Chen 10,665 Puntos de reputación Personal externo de Microsoft Moderador
    2024-11-28T19:01:22.4533333+00:00

    Hola Angel M,

    ¡Bienvenido(a) a Microsoft Q&A!

    Para crear usuarios con roles específicos en un clúster de MongoDB en Azure, puedes seguir estos pasos:

    Accede a MongoDB Atlas:

    • Si aún no lo has hecho, crea una cuenta en MongoDB Atlas.
    • Crea un clúster en MongoDB Atlas. Puedes seguir este tutorial para los pasos iniciales.

    Conéctate a tu clúster:

    • Utiliza MongoDB Compass o la línea de comandos mongosh para conectarte a tu clúster.

    Crear usuarios y roles:

    • Una vez conectado, puedes crear usuarios y asignarles roles específicos. Aquí tienes un ejemplo de cómo hacerlo desde mongosh:
    use admin
    db.createUser({
      user: "nombreUsuario",
      pwd: passwordPrompt(), // o puedes usar una contraseña en texto claro
      roles: [
        { role: "readWrite", db: "nombreBaseDeDatos" },
        { role: "dbAdmin", db: "nombreBaseDeDatos" }
      ]
    })
    

    Asignar roles personalizados:

    • Si necesitas roles más específicos, puedes crear roles personalizados. Aquí tienes un ejemplo:
    use admin
    db.createRole({
      role: "miRolPersonalizado",
      privileges: [
        { resource: { db: "nombreBaseDeDatos", collection: "" }, actions: ["find", "insert"] }
      ],
      roles: []
    })
    db.grantRolesToUser("nombreUsuario", [{ role: "miRolPersonalizado", db: "admin" }])
    

    Configuración desde Azure:

    • Aunque la gestión de usuarios y roles se realiza principalmente desde MongoDB Atlas, asegúrate de que tu clúster en Azure esté correctamente configurado para permitir conexiones y autenticaciones.

    Si las instrucciones anteriores no te funcionan, lo que podrías hacer es seguir la siguiente documentación: https://learn.microsoft.com/es-es/azure/cosmos-db/mongodb/vcore/quickstart-portal. Espero que información brindada fuera útil, si necesitas más asistencia, estoy a tu disposición.

    Atentamente,

    Gao


    Si esta respuesta resolvió tu consulta, por favor haz clic en 'Aceptar respuesta'. Esto nos ayuda a mejorar continuamente la calidad y relevancia de nuestras soluciones.


  2. Angel M 0 Puntos de reputación
    2024-12-03T09:48:25.4633333+00:00

    Buenas de nuevo,

    He intentado crear un usuario en mi clúster en Azure con el código que me ha pasado y no he podido. ¿Me puede ayudar?

    Pone que no lo soporta.

    [mongos] admin> db.createUser({
    ...   user: "user_ia",
    ...   pwd: passwordPrompt(),
    ...   roles: [
    ...     { role: "readWrite", db: "documentacion_ia" },
    ...     { role: "dbAdmin", db: "documentacion_ia" }
    ...   ]
    ... })
    Enter password
    MongoServerError[CommandNotSupported]: CreateUser command is not supported
    
    0 comentarios No hay comentarios

  3. Gao Chen 10,665 Puntos de reputación Personal externo de Microsoft Moderador
    2024-12-04T17:42:24.2933333+00:00

    Hola de nuevo Angel M,

    El error MongoServerError[CommandNotSupported]: CreateUser command is not supported puede deberse a varias razones. Aquí hay algunas posibles soluciones:

    • Autenticación: Asegúrate de estar autenticado como un usuario con privilegios suficientes para crear otros usuarios. Si ya tienes un usuario administrador, conéctate con ese usuario antes de intentar crear nuevos usuarios:
    use admin
    db.auth("adminUser", "adminPassword")
    
    • Versión de MongoDB: Verifica que estás utilizando una versión de MongoDB que soporte el comando createUser. Algunas versiones más antiguas pueden no soportar este comando.
    • Configuración del clúster: Si estás utilizando un clúster administrado en Azure, asegúrate de que la configuración del clúster permite la creación de usuarios. En algunos casos, es posible que necesites ajustar la configuración de seguridad o permisos desde el portal de Azure.
    • Modo de acceso: Si el clúster está configurado en modo de solo lectura o con restricciones específicas, es posible que no puedas crear usuarios directamente. Revisa la configuración de acceso y asegúrate de que tienes los permisos necesarios.
    • Conexión directa al servidor: Si estás utilizando una herramienta como MongoDB Compass o una shell remota, intenta conectarte directamente al servidor MongoDB donde se está ejecutando el clúster y ejecuta el comando desde allí.
    • Intenta iniciar el proceso mongod sin autenticación (cámbielo en el archivo de configuración). Luego inicie sesión como excepción local, lo que significa que puede conectarse a él a través de localhost. Cree un usuario que tenga privilegios de administrador de usuario, para que pueda crear más usuarios. Y luego vuelva a activar la autenticación (reinicie el proceso, por supuesto)

    En caso de que necesites la informacion usada como referencia: https://stackoverflow.com/a/60614872, https://www.mongodb.com/community/forums/t/cant-add-user-after-creating-admin-user-createuser-requires-authentication/5896. Espero que estos consejos ayuden a resolver el problema. Si necesitas más asistencia, estoy a tu disposición.

    Atentamente,

    Gao


    Si esta respuesta resolvió tu consulta, por favor haz clic en 'Aceptar respuesta'. Esto nos ayuda a mejorar continuamente la calidad y relevancia de nuestras soluciones.


  4. Angel M 0 Puntos de reputación
    2024-12-09T10:05:07.1833333+00:00

    Buenas de nuevo Gao,

    He intentado las cosas que me has comentado y no he podido crear usuarios de ninguna manera. Actualmente estoy usando un clúster de MongoDB que he creado en Azure. ¿Podrías decirme qué ajustes de la configuración del clúster debería configurar y cómo hacerlo para poder crear usuarios? Si necesitas información general de mi clúster o los ajustes actuales, por favor, dímelo.

    Un saludo.

    0 comentarios No hay comentarios

  5. Gao Chen 10,665 Puntos de reputación Personal externo de Microsoft Moderador
    2024-12-09T23:38:02.4933333+00:00

    Hola de nuevo Angel M,

    ¡Espero que hayas tenido un lindo fin de semana!

    Lamento la demora en mi respuesta, mientras estaba buscando más información sobre tu pregunta, es importante asegurarse de que la configuración del clúster permita la autenticación y la gestión de usuarios. Aca te dejo los pasos que debes seguir:

    Habilitar la autenticación:

    • Asegúrate de que la autenticación esté habilitada en tu clúster. Esto se hace configurando el archivo mongod.conf para incluir la opción security.authorization configurada como enabled.
    • Ejemplo de configuración en mongod.conf:
     security:
       authorization: enabled
    

    Configurar el acceso a la red:

    • Asegúrate de que tu clúster permita conexiones desde las IPs necesarias. Esto se puede configurar en la sección de acceso a la red de MongoDB Atlas o en el archivo de configuración de tu instancia de MongoDB.
    • Ejemplo de configuración en mongod.conf:
     net:
       bindIp: 0.0.0.0
       port: 27017
    

    Crear un usuario administrador:

    • Conéctate a tu clúster y accede a la base de datos admin.
    • Crea un usuario administrador que tenga permisos para crear otros usuarios.
    • Ejemplo de comando:
     use admin
     db.createUser({
       user: "adminUser",
       pwd: "adminPassword",
       roles: [{ role: "userAdminAnyDatabase", db: "admin" }]
     })
    

    Crear usuarios adicionales:

    • Una vez que tengas un usuario administrador, puedes crear otros usuarios con los roles necesarios.
    • Ejemplo de comando para crear un usuario con permisos de lectura y escritura en una base de datos específica: javascript use nombreBaseDeDatos db.createUser({ user: "nombreUsuario", pwd: "contraseñaSegura", roles: [{ role: "readWrite", db: "nombreBaseDeDatos" }] })

    Si necesitas información específica sobre tu clúster actual, como la configuración de red o los usuarios existentes, puedes obtenerla utilizando comandos como db.runCommand({ connectionStatus: 1 }) para ver el estado de la conexión y los usuarios conectado. Tambien, si nada de lo mencionado te funciona, te recomendaría contactar a soporte de MongoDB en el siguiente enlace: https://www.mongodb.com/es/contacto.

    Espero que esta información te ayude.

    Saludos,

    Gao


    Si esta respuesta resolvió tu consulta, por favor haz clic en 'Aceptar respuesta'. Esto nos ayuda a mejorar continuamente la calidad y relevancia de nuestras soluciones.


Su respuesta

Las respuestas pueden ser marcadas como Respuestas aceptadas por el autor de la pregunta, lo que indica a los usuarios que la respuesta resolvió su problema.