Ejercicio: Configuración de permisos en MySQL

Completado

En estos ejercicios de laboratorio, asignará roles de RBAC para controlar el acceso a los recursos de Azure Database for MySQL y concesiones de MySQL para controlar el acceso a las operaciones de base de datos.

Importante

Debe tener una suscripción a Azure propia para completar este ejercicio. Si no tiene una suscripción a Azure, cree una evaluación gratuita de Azure.

Para completar estos ejercicios, debe:

  • Haber creado un grupo de recursos (consulte módulo 1, unidad 5).
  • Haber creado un servidor flexible de Azure Database for MySQL (consulte módulo 1, unidad 5).
  • Descargar e instalar MySQL Workbench (consulte módulo 2, unidad 5).
  • Haber creado la base de datos zoodb (consulte módulo 2, unidad 5).

Sugerencia

Si ha detenido el servidor de Azure Database for MySQL después de completar el último laboratorio, reinícielo ahora.

Creación de una cuenta de usuario en Microsoft Entra ID

  1. En Azure Portal, inicie sesión con una cuenta de propietario y vaya a Microsoft Entra ID.

  2. En Administrar, seleccione Usuarios.

  3. En la parte superior izquierda, seleccione Nuevo usuario y, a continuación, seleccione Crear nuevo usuario.

  4. En la página Nuevo usuario, escriba estos detalles y seleccione Crear:

    • Nombre de usuario: Holly
    • Nombre: Holly Rees
    • Contraseña: Seleccione Permitirme crear contraseña y escriba Pa$$w 0rd.

    Sugerencia

    Cuando se cree el usuario, anote el nombre principal de usuario completo para usarlo más adelante para iniciar sesión.

Asignación del rol Lector

  1. En el Azure Portal, seleccione Todos los recursos y, a continuación, seleccione el recurso de Azure Database for MySQL.
  2. Seleccione Control de acceso (IAM) y, luego, seleccione Asignaciones de roles. Holly Rees no aparece en la lista.
  3. Seleccione + Agregar y, luego, Agregar asignación de roles.
  4. Seleccione el rol Lector y, a continuación, seleccione Siguiente.
  5. Agregue Holly Rees a la lista de miembros y, a continuación, seleccione Siguiente.
  6. Seleccione Revisar y asignar.

Prueba del rol Lector

  1. En la esquina superior derecha de Azure Portal, seleccione su cuenta de usuario y, luego, Cerrar sesión.
  2. Inicie sesión como el nuevo usuario, con el nombre principal de usuario que anotó y la contraseña Pa$$w0rd. Reemplace la contraseña predeterminada si se le solicita y tome nota de la nueva.
  3. En la página principal del portal, seleccione Todos los recursos y, después, seleccione el recurso Azure Database for MySQL.
  4. Seleccione Detener. Se muestra un error porque el rol Lector permite ver el recurso, pero no cambiarlo.

Asignación del rol Colaborador

  1. En la esquina superior derecha de Azure Portal, seleccione la cuenta de usuario de Holly y, luego, Cerrar sesión.
  2. Inicie sesión con su cuenta de propietario original.
  3. Vaya al recurso de Azure Database for MySQL y seleccione Control de acceso (IAM).
  4. Seleccione + Agregar y, luego, Agregar asignación de roles.
  5. Seleccione el rol Colaborador y, a continuación, seleccione Siguiente.
  6. Agregue Holly Rees a la lista de miembros y, a continuación, seleccione Siguiente.
  7. Seleccione Revisar y asignar.
  8. Seleccione Asignaciones de roles. Holly Rees ahora tiene asignaciones para los roles Lector y Colaborador.

Prueba del rol Colaborador

  1. En la esquina superior derecha de Azure Portal, seleccione su cuenta de usuario y, luego, Cerrar sesión.
  2. Inicie sesión como Holly Rees, con el nombre principal de usuario y la contraseña que anotó.
  3. En la página principal del portal, seleccione Todos los recursos y, después, seleccione el recurso Azure Database for MySQL.
  4. Seleccione Detener y, a continuación, seleccione . Esta vez, el servidor se detiene sin errores porque Holly tiene asignado el rol necesario.
  5. Seleccione Iniciar para asegurarse de que el recurso MySQL está listo para los pasos siguientes.
  6. En la esquina superior derecha de Azure Portal, seleccione la cuenta de usuario de Holly y, luego, Cerrar sesión.
  7. Inicie sesión con su cuenta de propietario original.

Concesión de acceso a Azure Database for MySQL

  1. Abra MySQL Workbench y conéctese al servidor de Azure Database for MySQL.

  2. En el panel de consulta, ejecute este código. Se deben devolver seis cuentas de usuario, incluida la cuenta de demostración que usa para conectarse:

     SELECT user, host FROM mysql.user;
    
  3. Para crear un nuevo usuario, ejecute este código.

     CREATE USER 'dbuser'@'%' IDENTIFIED BY 'Pa$$w0rd';
    
  4. Para incluir en la lista el nuevo usuario, vuelva a ejecutar la consulta SELECT anterior. Debería ver el usuario dbuser@% en la lista.

  5. Para habilitar el nuevo usuario para consultar y modificar datos en todas las tablas en la base de datos zoodb, ejecute este código:

     GRANT SELECT, INSERT, UPDATE, DELETE ON zoodb.* TO 'dbuser'@'%';
     FLUSH PRIVILEGES;
    

Prueba del usuario nuevo

  1. En MySQL Workbench, en el menú Base de datos, seleccione Administrar conexiones.

  2. Seleccione la conexión existente para Azure Database for MySQL y, a continuación, seleccione Duplicar.

  3. En la conexión duplicada, en el cuadro de texto Nombre de usuario, escriba dbuser.

  4. Junto a Contraseña, seleccione Almacenar en el almacén.

  5. En el cuadro de texto Contraseña, escriba Pa$$w0rd y haga clic en Aceptar.

    Screenshot showing the new user account in the Manage Connections dialog in MySQL Workbench.

  6. Seleccione Test Connection (Probar conexión). Si la conexión se realiza correctamente, seleccione Aceptar y, a continuación, seleccione Cerrar.

  7. En el menú Base de datos, seleccione Conectarse a una base de datos.

  8. En el cuadro de diálogo Conectar a la base de datos, seleccione la nueva conexión y, a continuación, seleccione Conectar.

  9. Para comprobar si tiene el privilegio SELECT, en la ventana de consulta, ejecute este código:

     SELECT * FROM animal;
    
  10. Para probar si tiene el privilegio UPDATE, ejecute este código:

     UPDATE animal SET Name = "Linda Lioness" WHERE AnimalID = "6";
     SELECT * FROM animal;
    
  11. Para probar si tiene el privilegio DROP, ejecute este código. Si se produce un error, examine el código de error:

     DROP TABLE animal;
    
  12. Para probar si tiene el privilegio de concesión, ejecute este código:

     GRANT ALL PRIVILEGES ON zoodb.* TO 'dbuser'@'%';
    

Estas pruebas muestran que el nuevo usuario puede ejecutar comandos del lenguaje de manipulación de datos (DML) para consultar y modificar datos, pero no puede usar comandos del lenguaje de definición de datos (DDL) para cambiar el esquema. Además, el nuevo usuario no puede conceder privilegios nuevos para eludir los permisos.