Estoy intentando crear un usuario simple con permiso de derechos para acceder a cualquier base de datos y puedo hacer cualquier acción. Cuando intento ejecutar el createUser
comando, recibo este error:
db.createUser({ user: "mongoadmin" , pwd: "mongoadmin", roles: ["userAdminAnyDatabase", "dbAdminAnyDatabase", "readWriteAnyDatabase"]})
2015-08-20T17:09:42.300+0000 E QUERY Error: couldn't add user: No role named userAdminAnyDatabase@new_vehicles_catalog
El problema anterior solo ocurre cuando habilito la configuración de autenticación y la necesito.
Entonces, ¿cómo creo un usuario con permiso de administrador para cualquier base de datos? Lo quiero porque configuré mis servicios mongo para usar la conexión de autenticación. Si quiero ejecutar un volcado de mis datos, tengo que usar estos parámetros de autenticación.
Por favor alguna ayuda?
Usando mongo versión 3.0.5 .
el servicio está en Amazon Linux AMI 2015.03 (HVM), tipo de volumen SSD - ami-1ecae776
fuente
Según
MongoDB BOL
Enable Auth Con el control de acceso habilitado, asegúrese de tener un usuario con userAdmin o userAdminAnyDatabase en la base de datos de administración. Este usuario puede administrar usuarios y roles tales como: crear usuarios, otorgar o revocar roles de usuarios, y crear o modificar roles aduaneros.Puede crear usuarios antes o después de habilitar el control de acceso. Si habilita el control de acceso antes de crear cualquier usuario, MongoDB proporciona una excepción de host local que le permite crear un administrador de usuarios en la base de datos de administración. Una vez creado, debe autenticarse como administrador de usuarios para crear usuarios adicionales según sea necesario.
Procedimiento
Aquí está el siguiente procedimiento a través del cual puede
Enable Auth
. Primero agrega un administrador de usuarios a una instancia de MongoDB que se ejecuta sin control de acceso y luego habilita el control de acceso.Conéctese a la instancia
Por ejemplo, conecte un
mongo
shell a la instancia.Especifique opciones de línea de comandos adicionales según corresponda para conectar el
mongo
shell a su implementación, como--host
.Crear el administrador del usuario
Por ejemplo, aquí en la base de datos de administración, agregue un usuario con el
userAdminAnyDatabase
rol. Por ejemplo, lo siguiente crea el usuariomyUserAdmin
en la base de datos de administración :Desconecte la
mongo
carcasa.Reinicie la instancia de MongoDB con control de acceso.
mongod
Reinicie la instancia con la opción de línea de comando --auth o, si usa un archivo de configuración, la configuración security.authorization .Los clientes que se conectan a esta instancia ahora deben autenticarse como
MongoDB
usuarios. Los clientes solo pueden realizar acciones según lo determinen sus roles asignados.Conéctese y autentíquese como administrador de usuarios
Usando el
mongo
shell, puedes:Conéctese con autenticación pasando las credenciales de usuario, o
Conéctese primero sin autenticación y luego emita el método db.auth () para autenticarse.
Para autenticarse durante la conexión Inicie un
mongo
shell con las-u <username>, -p <password>, and the --authenticationDatabase <database>
opciones de línea de comando:Para autenticar después de conectar
Conecte el
mongo
shell amongod
:Cambie a la base de datos de autenticación (en este caso, admin) y use el método db.auth (,) para autenticar:
fuente