Gestión de usuarios y roles
Los despliegues Databases for MongoDB vienen con la autenticación activada y utilizan MongoDB's control de acceso basado en funciones.
Añada usuarios en la interfaz de usuario en Credenciales de servicio, con el plugin de CLICloud Databases o la APICloud Databases.
El usuario administrador
Al suministrar un despliegue de Databases for MongoDB, se crea automáticamente un usuario de admin
.
Establezca la contraseña de administrador antes de utilizarla para conectarse.
El usuario admin
tiene los permisos siguientes:
-
userAdminAnyDatabase
proporciona los mismos privilegios queuserAdmin
en todas las bases de datos exceptolocal
yconfig
.userAdminAnyDatabase
proporciona el poder administrativo al usuario administrador. Proporciona la acciónlistDatabases
en el clúster en su conjunto. ConuserAdminAnyDatabase
, cree y otorgue roles a cualquier otro usuario del despliegue, incluidos los roles incorporados de MongoDB. Por ejemplo, para supervisar el despliegue, utiliceadmin
para iniciar sesión en el shell de mongo y otorgar el rolclusterMonitor
a cualquier usuario (incluido él mismo). Utilice un mandato como:db.grantRolesToUser( "admin", [ { role: "clusterMonitor", db: "admin" } ] )
-
readWriteAnyDatabase
proporciona los mismos privilegios quereadWrite
en todas las bases de datos exceptolocal
yconfig
. -
dbAdminAnyDatabase
proporciona los mismos privilegios quedbAdmin
en todas las bases de datos exceptolocal
yconfig
.
Establecer la contraseña de administrador en la interfaz de usuario
Establezca su contraseña de administrador a través de la interfaz de usuario seleccionando su instancia en la IBM Cloud Lista de recursos. A continuación, seleccione Configuración. A continuación, seleccione Cambiar contraseña de administrador de base de datos.
Configuración de la contraseña de administrador en la CLI
Utilice el mandato cdb user-password
del plugin de IBM Cloud CLI Cloud Databases para establecer la contraseña de administrador.
Por ejemplo, para establecer la contraseña de administrador de su implantación, utilice el siguiente comando:
ibmcloud cdb user-password <INSTANCE_NAME_OR_CRN> admin <NEWPASSWORD>
Configuración de la contraseña de administrador en la API
El punto final de Foundation que se muestra en la sección Detalles del despliegue del panel Descripción general de su servicio proporciona la URL base para acceder a este despliegue a través de la API. Utilícelo con el punto final Establecer contraseña de usuario especificada para establecer la contraseña de administrador.
curl -X PATCH `https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/users/admin` \
-H `Authorization: Bearer <>` \
-H `Content-Type: application/json` \
-d `{"password":"newrootpasswordsupersecure21"}` \
Gestión de usuarios y funciones a través de la interfaz de usuario
- Vaya al panel de control del servicio.
- Pulse Credenciales de servicio para abrir la sección Credenciales de servicio.
- Pulse Nueva credencial.
- Elija un nombre descriptivo para la nueva credencial.
- (Opcional) Especifique si las nuevas credenciales utilizan un punto final público o privado. Utilice
{ "service-endpoints": "public" }
/{ "service-endpoints": "private" }
en el campo Añadir parámetros de configuración en línea para generar series de conexión que utilicen el punto final especificado. El uso del punto final no se impone. Solo controla qué nombres de host hay en las series de conexión. De forma predeterminada, se generan puntos finales públicos. - Haga clic en Añadir para aprovisionar las nuevas credenciales. Se genera automáticamente un nombre de usuario y una contraseña y un usuario de MongoDB asociado.
Las nuevas credenciales aparecen en la tabla y las series de conexión están disponibles como JSON en un campo de pulsar para copiar en Ver credenciales.
La creación de un usuario desde la CLI o la API no llena automáticamente las series de conexión de ese usuario en Credenciales de servicio. Si desea añadirlas, puede crear una nueva credencial con la información del usuario existente.
Especifique el nombre de usuario y la contraseña en el campo JSON en Añadir parámetros de configuración en línea. Por ejemplo, {"existing_credentials":{"username":"Robert","password":"supersecure"}}
.
Básicamente, envías el nombre de usuario y la contraseña, y Credenciales de servicio genera las cadenas de conexión con las credenciales rellenadas.
Al generar credenciales de un usuario existente no se comprueba ni se crea dicho usuario.
A los usuarios que crea a través de Credenciales de servicio se les asignan los roles readWriteAnyDatabase
y dbAdminAnyDatabase
.
Si necesita que los usuarios creados desde Credenciales de servicio tengan un rol diferente, puede utilizar el usuario de administración para cambiar su rol.
Gestión de usuarios y roles a través de la CLI
A los usuarios que se crean en la CLI se les asignan los roles readWriteAnyDatabase
y dbAdminAnyDatabase
.
Si necesitas que los usuarios tengan un rol diferente, puedes utilizar el usuario admin
para cambiar su rol.
Los usuarios que se crean directamente desde la CLI no aparecen en Credenciales de servicio, pero puede añadirlos.
- Si gestiona el servicio a través del plugin de CLICloud Databases, cree un nuevo usuario con
cdb user-create
. Por ejemplo, para crear un nuevo usuario para su despliegue, utilice el siguiente comando:
ibmcloud cdb user-create <INSTANCE_NAME_OR_CRN> <NEWUSERNAME> <NEWPASSWORD>
-
Cuando finalice la tarea, recupera las cadenas de conexión del nuevo usuario con el comando
ibmcloud cdb deployment-connections
. -
MongoDB centraliza los datos de usuario en la base de datos
admin
. Listar todos los usuarios y sus roles y permisos de base de datos en el shell de mongo utilizando el comandoshow users
.
ibmcloud cdb deployment-connections --start -u admin mongodb-production
Database Password>>
MongoDB shell version v4.0.3
connecting to: mongodb://....
....
replset:PRIMARY> use admin
switched to db admin
replset:PRIMARY> show users
Gestión de usuarios y funciones a través de la API
A los usuarios que se crean en la API se les asignan los roles readWriteAnyDatabase
y dbAdminAnyDatabase
.
Si necesitas que los usuarios tengan un rol diferente, utiliza el usuario admin para cambiar su rol.
Los usuarios que se crean directamente desde la API no aparecen en Credenciales de servicio, pero puedes añadirlos.
El Punto final que se muestra en la sección Visión general del servicio proporciona el URL base para acceder a este despliegue a través de la API. Para crear y gestionar usuarios, utilice la URL base con el /users
endpoint.
El mandato tiene el siguiente aspecto:
curl -X POST https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/users/{user_type}
-H 'Authorization: Bearer <>'
-H 'Content-Type: application/json'
-d '{"user": {"username": "user", "password": "v3ry-1-secUre-pAssword-2"}}' \
Para recuperar las series de conexión de un usuario, utilice el URL base con el punto final /users/{userid}/connections
.
MongoDB-created
Si los usuarios y roles incorporados no se adaptan a tu entorno, crea usuarios y roles directamente en MongoDB. El usuario administrador del despliegue tiene la capacidad de crear cualquier rol o conjunto de privilegios para utilizarlos en el despliegue.
Los usuarios y roles que se crean directamente en MongoDB no aparecen en Credenciales de servicio y no están integrados con la cuenta de IBM Cloud o IAM.
El usuario ibm
Si utilizas el shell de mongo para listar los usuarios de tu despliegue, puede que notes un usuario que se llama ibm
. El usuario ibm
es la cuenta raíz interna que gestiona la réplica, las operaciones de clúster y otras
funciones que garantizan la estabilidad del despliegue. Cambiar o eliminar al usuario ibm
no es aconsejable e interrumpe la estabilidad de su despliegue.
Los usuarios de ops_manager
para MongoDB Enterprise Edition
Ops Manager solo está disponible en los despliegues de Databases for MongoDB Enterprise Edition. El tipo de usuario ops_manager
tiene permisos limitados. Para obtener más información, consulte la documentación deOps Manager.