Saltar al contenido

¿Cómo creo otro usuario de administración para mi instancia de base de datos de Amazon RDS para MySQL?

3 minutos de lectura
0

Quiero crear otro usuario con permisos de cuenta de administración para mi instancia de base de datos de Amazon Relational Database Service (Amazon RDS) que ejecuta MySQL.

Resolución

De forma predeterminada, Amazon RDS para MySQL tiene una cuenta de administración principal. Se recomienda crear otro usuario con permisos mínimos para usarlo con la aplicación. Para obtener más información, consulta Modelo de privilegios basado en roles para RDS para MySQL.

Nota: Según la versión de MySQL que utilices, también puedes ejecutar el comando GRANT para adjuntar permisos dinámicos a un usuario.

Para las versiones 8.0.36 y posteriores de MySQL

Para usar rds_superuser_role para conceder permisos basados en roles a los usuarios, sigue estos pasos:

  1. Como usuario de administración principal, ejecuta el comando SHOW GRANTS para ver la lista de permisos del rol rds_superuser_role:

    SHOW GRANTS FOR rds_superuser_role@'%';
  2. Ejecuta el comando CREATE USER para crear un nuevo usuario administrativo:

    CREATE USER 'new_admin_user'@'%' IDENTIFIED BY 'password';
  3. Ejecuta el comando GRANT para conceder el nuevo rol al nuevo usuario:

    grant rds_superuser_role to 'new_admin_user'@'%';
  4. Ejecuta el siguiente comando para activar el rol rds_superuser_role para el nuevo usuario:

    set role all;
  5. Ejecuta la siguiente consulta para comprobar que has concedido el rol rds_superuser_role al nuevo usuario:

    select current_role();

    Resultado de ejemplo:

    +--------------------------+  
    | current_role() |  
    +--------------------------+  
    | `rds_superuser_role`@`%` |  
    +--------------------------+

Para versiones de MySQL anteriores a 8.0.36

Sigue estos pasos:

  1. Conéctate a tu instancia de base de datos de RDS para MySQL.

  2. Ejecuta el siguiente comando para obtener una lista de los permisos que están disponibles actualmente para la cuenta administrativa:

    SHOW GRANTS for admin_username;

    Nota: Sustituye admin_username por tu nombre de usuario.

  3. Copia el resultado de la lista de permisos para usar en el paso 5.
    Resultado de ejemplo:

    +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| Grants for admin@% |  
    +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+  
    | GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'admin'@'%' WITH GRANT OPTION |  
    +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  4. Ejecuta el siguiente comando para crear un usuario nuevo:

    CREATE USER 'new_admin_user'@'%' IDENTIFIED BY 'password';

    Nota: Sustituye new_admin_user y password por tu nombre de usuario y contraseña.

  5. Ejecuta el siguiente comando GRANT e incluye la lista de permisos que obtuviste en el paso 2 para adjuntar al nuevo usuario:

    GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'new_admin_user'@'%' WITH GRANT OPTION;
  6. Usa el nuevo usuario para iniciar sesión.

  7. Ejecuta la siguiente consulta para comprobar que has concedido los permisos al nuevo usuario administrativo:

    SHOW GRANTS for admin_username;

    Nota: Sustituye admin_username por tu nombre de usuario.

Información relacionada

Tareas comunes de administración de bases de datos para las instancias de bases de datos MySQL

¿Cómo puedo permitir que los usuarios se autentiquen en una instancia de base de datos de Amazon RDS para MySQL con sus credenciales de IAM?