MySQL Crear usuario de solo lectura
- Crear un usuario de solo lectura en MySQL
- Crear una nueva cuenta de usuario de MySQL
-
Dar acceso al usuario al comando
SELECCIONAR
- Conclusión
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:
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:
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:
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:
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.
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.