Class to manager MYSQL for Harbour/xHarbour
Custom Search

domingo, 6 de febrero de 2011

Seguridad en MySql / Security in MySql

Existen 2 tipos de riesgos que debemos tener en consideracion en Mysql
1- Riesgos procedentes de otros usuarios con cuenta de acceso al host del servidor y llamaremos seguridad interna

2- Riesgos procedentes de clientes que conectan al servidor a travez de la red y llamaremos seguridad externa.

SEGURIDAD INTERNA:
Independientemente del sistema operativo en que este instalado el servidor donde montemos el host MySql, los archivos copiados despues de la instalacion deberan estar protegidos.
No debemos permitir acceso a las carpetas locales creadas por la instalacion de MySql y algunas de estas deberan estar bien protegidas, por ejemplo los archivos binarios y mas aun los archivos de registro, ya que contienen el texto de las sentencias que envian los clientes al servidor, esto tiene relacion con cualquiera que tenga acceso a los archivos de registro podra monitorizar los cambios en el contenido de la base de datos. Un aspecto mas especifico relacionado con los archivos de registro es las sentencias tales como GRANT y SET PASSWORD, tambien quedan registradas

SEGURIDAD EXTERNA:
El sistema de seguridad de MySql es bastante flexible. Nos permite configurar los privilegios de acceso de los usuarios de varias formas diferentes. Normalmente lo haremos utilizando las sentencias GRANT y REVOKE, las cuales modifican las tablas de autorizaciones que controlan el acceso de los clientes.
Las sentencias GRANT y REVOKE proporcionan un metodo adecuado para configurar cuentas de usuario en MySql y asociarles privilegios, pero son solo un ainterfaz. Todas las acciones reales tienen lugar en las tablas de autorizaciones de Mysql.
Para mas detalle sobre las tablas de autorizacion pueden consultar http://dev.mysql.com/doc/refman/5.0/en/grant-table-structure.html

9 comentarios:

  1. Daniel,

    We're waiting... :-)

    Thanks a lot !

    ResponderEliminar
  2. Daniel,

    Como impedimos elacceso a estas carpetas locales ? Cual es la mejor manera/tècnica ? Tiene relacion con la proteccion de todo el servidor de entradas de terceros o no autorizados ? Con un usuario/password mas un perfil de priviligeios ya es suficiente o...?

    Diria q el caso seria: Instalo p.e. un Win server e instalo un MySql. Que mas ? :-)

    Saludos.
    Charly

    ResponderEliminar
  3. Charly

    >Como impedimos elacceso a estas carpetas locales ?
    depende del SO que uses, para windows es mas simple siplemente no compartes el acceso a las carpetas de instalacion de MySql
    con sistemas estilo UNIX, simplemente creas los permisos por carpetas, en google seguro encintraras mucha informacion respecto a este punto

    >Cual es la mejor manera/tècnica ?
    supomgo que tu pregunta es cual es la mejor manera/tecnica de impedir el acceso, respondido en el punto anterior

    >Tiene relacion con la proteccion de todo el servidor de entradas de terceros o no autorizados ?
    Hablando de intrucciones a carpertas locales si, para el acceso a la base de datos, solo tendran acceso los usuarios asignados para el acceso a MySql

    >Con un usuario/password mas un perfil de priviligeios ya es suficiente o...?
    para ambos casos si...

    >Diria q el caso seria: Instalo p.e. un Win server e instalo un MySql. Que mas ?
    Que mas con que???
    si es por lo tratado en el Postya este por si solo te responde a las cosas que debes tener pendiente a la hora de seguridad

    ResponderEliminar
  4. Daniel,

    Bien :-)

    El tema de puertos, debes configurar y dejar abierto solo el q uses con MySql ?, o debes abrir maspara q vaya mas fino ?

    Gracias.

    ResponderEliminar
  5. Charly
    Mysql solo abre un puerto por instancia, es decir, con eso bastaria

    ResponderEliminar
  6. Daniel,

    Gracias por tus explicaciones. En resumen entiendo q por un lado tenemos toda la configuracion de las cuentas, perfiles de acceso y rchivos de registro propias de mysql, y otra es la de prohibir el acceso a as carpetas de MySql, mediante la no conparticion de sus carpetas.

    La peticion de estas explicaciones era como el poder evitar la intrusion a tu datos por hackers o personas no autorizas.

    Gracias por el tip.

    ResponderEliminar
  7. Daniel,

    Que tipo de mantenimiento se debe hacer a una BD de MySql ? Como los reindex ? . Se puede hacer desde la clase ?

    saludos.

    Charly

    ResponderEliminar
  8. Charly

    > Que tipo de mantenimiento se debe hacer a una BD de MySql ?
    El mantenimiento de la tabla es minimo

    Como los reindex ?
    En teoria es muy poco problable que tengas problemas de indices, podrias ver el uso de OPTIMIZE TABLE, http://dev.mysql.com/doc/refman/5.1/en/optimize-table.html

    . Se puede hacer desde la clase ?
    si, de hecho, puedes ejecutar cualquier sentencia SQL desde la clase

    te recomiendo este libro http://www.kitebird.com/mysql-book/
    fue el que me dio los parametros para crear la clase

    ResponderEliminar