IBM Cloud Docs
Gestión de usuarios, roles y privilegios

Gestión de usuarios, roles y privilegios

MySQL 5.7 utiliza un sistema de roles para gestionar permisos de base de datos. Cree usuarios desde la interfaz de usuario y desde MySQL Shell. Los usuarios creados desde la interfaz de usuario tienen privilegios casi idénticos a los de admin, pero no pueden crear otros usuarios. Dado que admin dispone de las opciones CREATE USER y GRANT, puede crear un usuario y otorgarle todos los privilegios de que dispone, incluido el privilegio de crear nuevos usuarios.

mysql> SELECT DISTINCT GRANTEE FROM information_schema.user_privileges;
+-----------------------------+
| GRANTEE                     |
+-----------------------------+
| 'ibm'@'localhost'           |
| 'mysql.session'@'localhost' |
| 'mysql.sys'@'localhost'     |
| 'ibm-backup'@'localhost'    |
| 'admin'@'%'                 |
| 'ibm-replication'@'%'       |
| 'ibm-monitor'@'%'           |
+-----------------------------+
+-----------------+
| user            |
+-----------------+
| admin           |
| ibm-monitor     |
| ibm-replication |
| ibm             |
| ibm-backup      |
| mysql.session   |
| mysql.sys       |
+-----------------+

IBM Cloud mantiene los usuarios siguientes, que no se deben alterar ni borrar:


| ibm-monitor     |
| ibm-replication |
| ibm             |
| ibm-backup      |

Cuando se aprovisiona una nueva implantación en IBM Cloud, se le asigna automáticamente un usuario admin para acceder a MySQL y gestionarla.

Añada usuarios en la interfaz de usuario en credenciales de servicio, con el complemento Cloud Databases CLI o la API Cloud Databases.

Mandatos de gestión de usuarios

Por motivos de seguridad, le recomendamos que no ejecute consultas DML (Lenguaje de manipulación de datos) en la tabla mysql.user. Como protección contra la alteración de la tabla mysql.user, debe utilizar consultas DML para gestionar usuarios.

Gestione los usuarios utilizando mandatos como CREATE USER, ALTER USER, RENAME USER y DROP USER.

Una lista de usuarios con información de hosts, pero sin hash de información de autenticación y contraseña se puede extraer ejecutando el mandato siguiente:

mysql> SELECT DISTINCT GRANTEE FROM information_schema.user_privileges;

El usuario admin

Cuando se proporciona un nuevo despliegue en IBM Cloud, se obtiene automáticamente un usuario de administración para acceder a y gestionar MySQL. Una vez que haya establecido la contraseña de administrador, utilícela para conectarse al despliegue.

Cuando admin crea un recurso en una base de datos, como una tabla, admin es el propietario de ese objeto. Los usuarios que se crean desde la interfaz de usuario tienen permisos para *.*, lo que significa que cualquier usuario recién creado puede ver cualquier base de datos automáticamente. Utilice MySQL sh, o modifique los permisos de un usuario creado por la interfaz de usuario para restringir el acceso. Para limitar los permisos, elimine los privilegios globales, si están habilitados, y otorgue privilegios a una base de datos o conjunto de bases de datos a las que un determinado usuario deba tener acceso.

Establezca la contraseña de administrador antes de utilizarla para conectarse.

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 lista de recursos del panel IBM Cloud. 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 una implantación denominada example-deployment, utilice el siguiente comando:

ibmcloud cdb user-password example-deployment 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 base URL 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"}` \

Otros usuarios ibm

Las cuentas ibm e ibm-replication son los únicos superusuarios del despliegue. Una cuenta de superusuario no está disponible para su uso. Estos usuarios son cuentas administrativas internas que gestionan la réplica, métricas y otras funciones que garantizan la estabilidad del despliegue.

Usuarios creados con mysql

Puede omitir la creación de usuarios a través de IBM Cloud completamente y crear usuarios directamente en MySQL con mysql. Esto le permite utilizar la gestión de roles y usuarios nativa de MySQL. Los usuarios/roles creados en mysql deben tener todos sus privilegios establecidos manualmente, así como los privilegios de los objetos que crean.

Los usuarios que se crean directamente en MySQL no aparecen en Credenciales de servicio, pero puede añadirlos si lo desea.

Tenga en cuenta que estos usuarios no están integrados con los controles IAM, incluso si se añaden a Credenciales de servicio.

Acceso de usuario a tablas

Aunque no puede suprimir mysql database, los usuarios pueden descartar tablas, incluida la tabla mysql.users que contiene usuarios internos. Los clientes no deben suprimir ninguna tabla que pertenezca a mysql database ya que esta acción puede dar como resultado una formación rota, que sólo se puede resolver con una recuperación de un punto en el tiempo (PITR).

IBM Cloud no alerta de la ruptura de la formación debido a la caída de una tabla del sistema por parte de un cliente.

Usuarios y series de conexión adicionales

El acceso a su despliegue de Databases for MySQL no está limitado al usuario administrador. Puede crear usuarios utilizando el panel Credenciales de servicio, la CLI de IBM o a través de la API IBM Cloud Databases.

Todos los usuarios del despliegue pueden utilizar las series de conexión, incluidas las series de conexión para los puntos finales públicos o privados.

Al crear un usuario, se le asignan determinados privilegios y roles de base de datos. Estos privilegios incluyen la capacidad de iniciar sesión, crear bases de datos y crear otros usuarios. Para obtener más información, consulte la página Gestión de usuarios, roles y privilegios.

Creación de usuarios en Credenciales de servicio

  1. Vaya al panel de control de servicio del servicio.
  2. Pulse Credenciales de servicio para abrir el panel Credenciales de servicio.
  3. Pulse Nueva credencial.
  4. Elija un nombre descriptivo para la nueva credencial.
  5. (Opcional) Especifique si las nuevas credenciales deben utilizar 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 utilizando 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.
  6. Pulse Añadir para suministrar las nuevas credenciales. Se generan automáticamente un nombre de usuario y una contraseña y un usuario de base de datos asociado en la base de datos MySQL.

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.

Creación de usuarios desde la línea de mandatos

Si gestiona el servicio mediante la CLI de IBM Cloud y el plugin de Cloud Databases, puede crear un nuevo usuario con cdb user-create. Por ejemplo, para crear un nuevo usuario para un despliegue llamado "example-deployment", utilice el mandato siguiente.

ibmcloud cdb user-create example-deployment <newusername> <newpassword>

Una vez que finaliza la tarea, puede recuperar las series de conexión del nuevo usuario con el mandato ibmcloud cdb deployment-connections.

Creación de usuarios desde la API

El Punto final base que se muestra en el panel Visión general Detalles del despliegue del servicio proporciona el URL base para acceder a este despliegue a través de la API. Para crear y gestionar usuarios, utilice el URL base con el punto final /users.

curl -X POST 'https://api.{region}.databases.cloud.ibm.com/v4/ibm/deployments/{id}/users' \
-H "Authorization: Bearer $APIKEY" \
-H "Content-Type: application/json" \
-d '{"username":"jane_smith", "password":"newsupersecurepassword"}'

Una vez que la tarea haya finalizado, puede recuperar las series de conexión del nuevo usuario desde el punto final /users/{userid}/connections.

Adición de usuarios a Credenciales de servicio

La creación de un nuevo usuario desde la CLI no llena automáticamente las series de conexión de ese usuario en las 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 Añadir parámetros de configuración en línea o especifique un archivo donde se almacena la información de JSON. Por ejemplo, poner {"existing_credentials":{"username":"Robert","password":"supersecure"}} en el campo genera Credenciales de servicio con el nombre de usuario "Robert" y la contraseña "supersecure" llenados en las series de conexión.

Al generar credenciales de un usuario existente no se comprueba ni se crea dicho usuario.