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:51] 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 27: Línea 27:
   * El software cliente necesita permisos para -al menos- insertar, modificar y eliminar libremente información en la base de datos deseada.   * 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''.   * 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.
 +
 +<code mysql>
 +CREATE DATABASE db_crux_helpcom;
 +</code>
 +
  
 ===== Usuario de Aplicación Cliente ===== ===== Usuario de Aplicación Cliente =====
Línea 32: Línea 43:
 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; 
-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; 
- 
 </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. 
  
-===== Alterar Estructuras =====+**Permisos mínimos**
  
-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:+(Reemplazar "nombreproducto" por el nombre de producto por ejemplo ''crux''''remuneraciones'', etc)
  
 <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  
 +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; FLUSH PRIVILEGES;
 +</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 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**:
 +
 +<code mysql>
 +CREATE USER helpcom_admin IDENTIFIED BY '***********';
 </code> </code>
 +
 +**Asignación de permisos**
 +
 +<code mysql>
 +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;
 +</code>
 +
 +:!: Nota: Estos permisos permiten borrar tablas completas.
  
  
Línea 62: Línea 103:
 <code mysql> <code mysql>
 CREATE USER mysqldump@'localhost' IDENTIFIED BY 'mysqldump'; CREATE USER mysqldump@'localhost' IDENTIFIED BY 'mysqldump';
-GRANT SELECT, LOCK TABLES, SHOW VIEW, FILE ON db_crux_helpcom.* TO mysqldmp@'localhost';+GRANT SELECT, LOCK TABLES, SHOW VIEW, TRIGGER ON db_crux_helpcom.* TO mysqldmp@'localhost'; 
 +GRANT FILE ON *.* TO mysqldump@'localhost';
 FLUSH PRIVILEGES; FLUSH PRIVILEGES;
 </code> </code>
Línea 70: Línea 112:
 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 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''.+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''. 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.1541782293.txt.gz · Última modificación: 2018/11/09 16:51 por lmachuca
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0