Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
f1:mysql_server_permisos [2018/11/09 16:45] lmachucaf1:mysql_server_permisos [2019/07/12 15:20] (actual) lmachuca
Línea 1: Línea 1:
 ====== MySQL Server Configurar Permisos ====== ====== 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:+Una vez [[MySQL Server|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: Linux / consolas:
Línea 28: Línea 28:
   * 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''.   * 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 y Permisos para el Cliente ====+===== Base de Datos de Aplicación ===== 
 + 
 +Estos pasos se llevan a cabo con un usuario con privilegios, usualmente ''root''
 + 
 +Aquí cambiamos el "crux" "helpcom" por el nombre de producto y nombre de la base de datos que deseemos. 
 + 
 +<code mysql> 
 +CREATE DATABASE db_crux_helpcom; 
 +</code> 
 + 
 + 
 +===== Usuario de Aplicación Cliente =====
  
 Las siguientes instrucciones **para MySQL ≥ 5.1** permiten generar los usuarios y permisos necesarios: Las siguientes instrucciones **para MySQL ≥ 5.1** permiten generar los usuarios y permisos necesarios:
  
-**Permisos mínimos**+** Creación del usuario**
  
 <code mysql> <code mysql>
 CREATE USER helpcom_db IDENTIFIED BY '**********'; CREATE USER helpcom_db IDENTIFIED BY '**********';
-CREATE DATABASE db_crux_helpcom; +</code>
-GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE TEMPORARY TABLES, CREATE VIEW, SHOW VIEW, EXECUTE, INDEX, TRIGGER ON db_crux_helpcom.* TO helpcom_db; +
-FLUSH PRIVILEGES;+
  
 +
 +**Permisos mínimos**
 +
 +(Reemplazar "nombreproducto" por el nombre de producto por ejemplo ''crux'', ''remuneraciones'', etc)
 +
 +<code mysql>
 +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;
 </code> </code>
  
-**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 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 dedicado para poder alterar las estructuras de las bases de datos.+**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.
  
-==== Alterar Estructuras ====+===== Usuario de Administración =====
  
-Para permitir al usuario ''helpcom_db_admin'' actualizar la estructura de las tablas se necesita agregar los permisos ''ALTER'' ''ALTER ROUTINE'', además de otros permisos de gestión, a su sentencia de privilegios:+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**: 
 + 
 +<code mysql> 
 +CREATE USER helpcom_admin IDENTIFIED BY '***********'
 +</code> 
 + 
 +**Asignación de permisos**
  
 <code mysql> <code mysql>
-CREATE USER helpcom_db_admin IDENTIFIED BY '***********'+GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE 
-GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE TEMPORARY TABLES, CREATE VIEW, SHOW VIEW, EXECUTE, INDEX, TRIGGER , ALTER, ALTER ROUTINE ON db_crux_helpcom.* TO helpcom_db;+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; FLUSH PRIVILEGES;
 +</code>
  
 +:!: Nota: Estos permisos permiten borrar tablas completas.
 +
 +
 +===== Respaldos =====
 +
 +Para [[:Respaldos Diarios Linux|configurar respaldos diarios de MySQL]], éstos son los permisos que la cuenta debe tener:
 +
 +<code mysql>
 +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;
 </code> </code>
  
-----+=====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''.
  
-Una vez que están aplicados estos permisos y se cierra la conexión actual de ''root'', las aplicaciones cliente pueden conectarse y es posible **subir información** a la base de datos, por ejemplo subir un dump para el cliente vía DBeaver / SQLYog.+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''.
  
  
f1/mysql_server_permisos.1541781902.txt.gz · Última modificación: 2018/11/09 16:45 por lmachuca
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0