Tabla de Contenidos
MySQL Server Configurar Permisos
Una vez instalado e iniciado un servicio MySQL, es posible entrar por una consola al usuario root para llevar a cabo el levantamiento de usuarios y bases de datos inicial:
Linux / consolas:
mysql -u root -p (contraseña de root) # Alternativamente, en Debian 9 o 10 con las notas de post-instalación de la página anterior mysql -h localhost -u root -p
GUI Windows (Query Browser, etc):
- Host:
localhost
(o127.0.0.1
o::1
) - User:
root
- Pass: la contraseña de root.
- Schema: (vacío)
Desde MySQL 5.6 en adelante, o en Windows 10, usar
localhost
tiene un resultado diferente de usar las IP de loopback dependiendo de la configuración de seguridad del servidor y de los firewall instalados. Si usar localhost
no funciona, es importante chequear las configuraciones de los software antivirus / firewall.
La configuración general para un cliente de Helpcom se puede describir en tres puntos:
- El software cliente utiliza un usuario de MySQL, usualmente
helpcom_db
. - El software cliente se conecta a una base de datos, por ejemplo
db_crux_helpcom
. - El software cliente necesita permisos para -al menos- insertar, modificar y eliminar libremente información en la base de datos deseada.
- Para poder modificar tablas en caso de actualizaciones, es mejor usar un usuario diferente el cual tiene permisos para truncar, alterar y borrar según sea necesario. En este caso crearemos el usuario
helpcom_db_admin
.
Base de Datos de Aplicación
Estos pasos se llevan a cabo con un usuario con privilegios, usualmente root
.
Aquí cambiamos el “crux” y “helpcom” por el nombre de producto y nombre de la base de datos que deseemos.
CREATE DATABASE db_crux_helpcom;
Usuario de Aplicación Cliente
Las siguientes instrucciones para MySQL ≥ 5.1 permiten generar los usuarios y permisos necesarios:
Creación del usuario
CREATE USER helpcom_db IDENTIFIED BY '**********';
Permisos mínimos
(Reemplazar “nombreproducto” por el nombre de producto por ejemplo crux
, remuneraciones
, etc)
GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE , CREATE TEMPORARY TABLES, CREATE VIEW, SHOW VIEW , EXECUTE, INDEX, TRIGGER ON `db\_nombreproducto\_%`* TO helpcom_db; GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE , CREATE TEMPORARY TABLES, CREATE VIEW, SHOW VIEW , EXECUTE, INDEX, TRIGGER ON `%helpcom%`* TO helpcom_db; FLUSH PRIVILEGES;
Nota: bajo estos permisos, para poder llevar a cabo actualizaciones de estructura de tablas (ALTER
) o poder limpiar o borrar la base de datos (CREATE
, DROP
), o llevar cualquier acción administrativa en MySQL (crear usuarios o cambiar permisos) es necesario conectar como root en localhost lo que significa conectarse directamente desde el mismo servidor, o utilizar un puente SSH para acceder al puerto de manera local. El siguiente paso crea un usuario de administración para la base de datos, dedicado a poder alterar las estructuras, borrar tablas o subir dumps.
Usuario de Administración
Para permitir alterar la estructura y borrar o subir nuevas tablas, creamos el usuario helpcom_admin
el cual tendrá más privilegios que el usuario de helpcom normal.
Creación del usuario:
CREATE USER helpcom_admin IDENTIFIED BY '***********';
Asignación de permisos
GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE , CREATE TEMPORARY TABLES, CREATE VIEW, SHOW VIEW , EXECUTE, INDEX, TRIGGER , ALTER, ALTER ROUTINE, CREATE, DROP, REFERENCES ON `db\_nombreproducto\_%`.* TO helpcom_admin; GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE , CREATE TEMPORARY TABLES, CREATE VIEW, SHOW VIEW , EXECUTE, INDEX, TRIGGER , ALTER, ALTER ROUTINE, CREATE, DROP, REFERENCES ON `%helpcom%`.* TO helpcom_admin; FLUSH PRIVILEGES;
Nota: Estos permisos permiten borrar tablas completas.
Respaldos
Para configurar respaldos diarios de MySQL, éstos son los permisos que la cuenta debe tener:
CREATE USER mysqldump@'localhost' IDENTIFIED BY 'mysqldump'; GRANT SELECT, LOCK TABLES, SHOW VIEW, TRIGGER ON db_crux_helpcom.* TO mysqldmp@'localhost'; GRANT FILE ON *.* TO mysqldump@'localhost'; FLUSH PRIVILEGES;
Gestión
Una vez que están aplicados los permisos y se cierra la conexión actual de root
, las aplicaciones cliente pueden conectarse usando la cuenta de aplicación helpcom_db
.
Para subir la estructura e información inicial por ejemplo desde un mysqldump, o para truncar o borrar tablas, se debe usar la cuenta helpcom_db_admin
por local o remoto, o la cuenta root
por local.
Para crear o eliminar bases de datos o crear o eliminar usuarios, se debe conectar al servidor de manera local para entrar a la consola de MySQL de root
.