MySQL Crear usuario de solo lectura

Migel Hewage Nimesha 15 febrero 2024
  1. Crear un usuario de solo lectura en MySQL
  2. Crear una nueva cuenta de usuario de MySQL
  3. Dar acceso al usuario al comando SELECCIONAR
  4. Conclusión
MySQL Crear usuario de solo lectura

Con frecuencia, podría ser necesario que un usuario cree acceso utilizando credenciales de solo lectura a una base de datos. El usuario solo puede ver o leer los datos guardados en la base de datos; no se les permite cambiar su contenido o la forma en que está configurado.

Este artículo analiza principalmente cómo crear un usuario de solo lectura en MySQL. Debe crear un usuario que solo pueda acceder a una base de datos en modo de solo lectura.

Crear un usuario de solo lectura en MySQL

Para crear el usuario de solo lectura en MySQL, use el siguiente comando en su terminal o símbolo del sistema para iniciar sesión como administrador de MySQL.

mysql -u root -p

Aparecerá la solicitud de ingreso de la contraseña. Luego ingrese la contraseña de la cuenta raíz.

Producción:

Ingrese la contraseña de la cuenta raíz

Crear una nueva cuenta de usuario de MySQL

CREATE USER 'report'@'%' IDENTIFIED BY 'secret';

El informe de usuario puede usar el % en el comando anterior, como se muestra, para unirse desde cualquier host. Puede restringir el acceso después de especificar el host desde el que se puede conectar el usuario.

El usuario solo podrá unirse desde la misma máquina si se omite esta información.

Producción:

Crear una nueva cuenta de usuario de MySQL

Dar acceso al usuario al comando SELECCIONAR

GRANT SELECT ON database_name.* TO 'report'@'%';

Debe poseer estos dos privilegios que está otorgando y el privilegio GRANT OPTION para usar GRANT. (Alternativamente, puede otorgar cualquier privilegio a cualquier cuenta si tiene el privilegio ACTUALIZAR para las tablas de concesión de esquemas del sistema MySQL).

Con este comando, al usuario solo se le otorga acceso de solo lectura a la base de datos en el host local. Escriba el siguiente comando si conoce el nombre de host o la dirección IP del host donde se instalará el recopilador.

Producción:

Otorgar acceso al usuario

GRANT SELECT ON database_name.* TO 'report'@'host_name or IP_address';

Para guardar y aplicar los ajustes de privilegios, ejecute el siguiente comando.

FLUSH PRIVILEGES;
SHOW GRANTS FOR 'report'@'host_name or IP_address';

Ingrese la palabra “bastante” al final y muestre los privilegios autorizados del usuario para confirmar.

Debido a que MySQL 8 difiere de las versiones anteriores, debemos seguir las instrucciones. Pero hay que hacerlo en dos fases, secuencialmente:

CREATE USER 'readonly_user'@'localhost' IDENTIFIED BY 'some_strong_password';
GRANT SELECT, SHOW VIEW ON *.* TO 'readonly_user'@'localhost';
FLUSH PRIVILEGES;

Los desarrolladores de MySQL quieren funciones adicionales, y MySQL 8.0 ofrece varias en los campos de SQL, JSON, expresiones regulares y GIS.

UTF8MB4 se ha utilizado como conjunto de caracteres predeterminado en la versión 8.0 porque los desarrolladores también quieren poder almacenar emojis.

Finalmente, hay mejoras en los tipos de datos, incluidas capacidades mejoradas de IPv6 y UUID y operaciones bit a bit en tipos de datos BINARIOS.

Producción:

mostrar los privilegios autorizados del usuario

Los siguientes son otros permisos de solo lectura.

Permisos de solo lectura Descripción
MOSTRAR VISTA Les permite mostrar el esquema de vista.
MOSTRAR BASES DE DATOS Les permite mostrar bases de datos.
CLIENTE DE REPLICACIÓN Les permite verificar el estado de replicación/esclavo. Pero necesitan permitir todos los DB.
PROCESS Les permite comprobar el proceso en ejecución. Funcionará solo con todos los DB.

Los siguientes son varios permisos que puede otorgar a un usuario.

permisos Descripción
ALL Esto permitiría a un usuario de MySQL todo el acceso.
TODOS LOS PRIVILEGIOS Los usuarios de MySQL tendrían acceso completo.
CREATE Les permite desarrollar nuevas bases de datos o tablas.
DROP Les permite eliminar bases de datos o tablas.
DELETE Les permite eliminar filas de las tablas.
INSERT Les permite insertar filas en las tablas.
SELECT Les permite leer a través de una base de datos utilizando el comando SELECCIONAR.
MOSTRAR VISTA Les permite mostrar el esquema de vista.
CLIENTE DE REPLICACIÓN Les permite verificar el estado de replicación/esclavo, pero deben permitir todas las bases de datos.
PROCESS Les permite comprobar el proceso en ejecución. Funcionará solo con todos los DB.
UPDATE Les permite actualizar las filas de la tabla.
OPCIÓN DE BECA Les permite otorgar o quitar otros privilegios de usuario.

Utilice el siguiente marco para otorgar permiso a un usuario en particular:

GRANT [type of permission list separated by a comma] ON [database name].[table name] TO [username]@'[hostname]’;

Conclusión

A lo largo de este artículo, discutimos la creación de un usuario de solo lectura en MySQL. Con esto, el usuario solo accede a la base de datos con fines de solo lectura y solo puede acceder desde el host local.

Una contraseña siempre identifica al usuario de solo lectura. Como se mencionó anteriormente, podemos usar varios comandos en la línea de comandos de MySQL para crear un usuario para acceder a datos de solo lectura en la base de datos.

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.