none
Duda con mysql server y consultas

    Pregunta

  • Buenos dias tengo una duda, tengo una base de datos instalada en windows 7 y me gustaria saber si se guarda algun log de las modificaciones o de las consultas que se realizan a las tablas, por ejemplo si realizo una consulta tipo select articulo from ... se guarda en algun log??
    miércoles, 17 de abril de 2019 7:20

Respuestas

Todas las respuestas

  • Hola angelilloz:

    La respuestappor defecto es un no.

    Existen multiples formas de realizar auditorias en funcion de tu servidor de base de datos. Unas estandard, otras de pago. Todas tienen que tener una serie de detalles sobre lo que se quiere implementar pero todas ocupan mucho espacio en funcion de la informacion a almacenar.

    Es un tema complicado a evaluar

    • Propuesto como respuesta Carlos_Ruiz_M miércoles, 17 de abril de 2019 14:16
    miércoles, 17 de abril de 2019 8:41
  • osea que seria una tarea de "chinos" en cierto modo, hablamos de una base de datos de unos 5 gigas de tamaño con muchas tablas y entradas.
    miércoles, 17 de abril de 2019 8:52
  • Hola angelilloz:

    No es que sea un trabajo de chinos. El problema es la definición de lo que se quiere hacer, el "coste" en modificaciones, y el volumen.

    Un ejemplo típico:

    Necesitamos saber quien ha hecho una select y contra que datos y tablas y cuando.

    La automatización no es muy complicada, pero cuando tengas hechas en un día 10000 selects, cuanto va a ocupar. Estas dispuesto a pagar esa ocupación, porque si lo almacenas en la base de datos, esta crecerá mucho.

    Segunda parte sobre que tablas, sobre todas, entonces, el problema será muy grande.

    Imaginate que tienes el software ya realizado, y hay alguna cosa, que por que te resultaba más fácil, para traer 1000 registros, lo codificaste, con una petición por cada uno., entonces en la auditoria, hay que registrar 1000 peticiones.

    Con el mismo ejemplo, tienes un reporte, que para realizar una suma total de ventas, se trae 15000 filas. Auditar las 15000 filas, porque las automatizaciones, son a nivel de server o tabla, no tienen lógica de si esto viene de un reporte no, y si no si.

    Otro punto, el usuario. Muchas aplicaciones, se conectan a la base de datos, con la misma cadena de conexión para todos los usuarios, y es la lógica de negocio de la aplicación, la que diferencia unos u otros. Pero si la tabla no tiene esa información la auditoria no lo sabrá. y requerirá de cambios en la aplicación.

    • Propuesto como respuesta Carlos_Ruiz_M miércoles, 17 de abril de 2019 14:16
    miércoles, 17 de abril de 2019 12:56
  • Hola angelilloz:

    No es que sea un trabajo de chinos. El problema es la definición de lo que se quiere hacer, el "coste" en modificaciones, y el volumen.

    Un ejemplo típico:

    Necesitamos saber quien ha hecho una select y contra que datos y tablas y cuando.

    La automatización no es muy complicada, pero cuando tengas hechas en un día 10000 selects, cuanto va a ocupar. Estas dispuesto a pagar esa ocupación, porque si lo almacenas en la base de datos, esta crecerá mucho.

    Segunda parte sobre que tablas, sobre todas, entonces, el problema será muy grande.

    Imaginate que tienes el software ya realizado, y hay alguna cosa, que por que te resultaba más fácil, para traer 1000 registros, lo codificaste, con una petición por cada uno., entonces en la auditoria, hay que registrar 1000 peticiones.

    Con el mismo ejemplo, tienes un reporte, que para realizar una suma total de ventas, se trae 15000 filas. Auditar las 15000 filas, porque las automatizaciones, son a nivel de server o tabla, no tienen lógica de si esto viene de un reporte no, y si no si.

    Otro punto, el usuario. Muchas aplicaciones, se conectan a la base de datos, con la misma cadena de conexión para todos los usuarios, y es la lógica de negocio de la aplicación, la que diferencia unos u otros. Pero si la tabla no tiene esa información la auditoria no lo sabrá. y requerirá de cambios en la aplicación.

    Gracias por responder y perdona pero estoy muy verde en el tema. Seria sobre una tabla en concreto, y hablariamos de que en esa tabla, se han echo unas 20 consultas los ultimos 5 meses. Respecto a los usuarios, solo hay creado uno, desde el que se conecta el software. Podria hacerlo yo mismo?? 
    miércoles, 17 de abril de 2019 13:21
  • miércoles, 17 de abril de 2019 14:38
  • Si tu base de datos es Sql server??? o mySql

    Si es Microsoft.

    Control de versiones

    https://javifer2.blogspot.com/search/label/auditor%C3%ADa%20control%20versiones

    Auditoria con triggers

    https://javifer2.blogspot.com/search/label/auditor%C3%ADa%20con%20triggers

    Auditoria con Triggers en MySql

    https://ogfornes.wordpress.com/2013/12/16/triggersdisipadores-en-mysql/

    https://www.researchgate.net/publication/308170361_Como_auditar_cambios_en_una_tabla_MySQL_o_MariaDB

    es mysql server 2008 r2, muchas gracias, aunque como dije no tengo ni pajorela idea y me parece dificil a priori.
    jueves, 18 de abril de 2019 20:36
  • Hola angelilloz:

    No existe mysql server 2008 r2, por esa nomenclatura es SQL Server 2008 R2 de Microsoft.

    Si ejecutas en tu entorno select @@version te responderá algo de este estilo, pero con tú versión explicita.

    Microsoft SQL Server 2017 (RTM-GDR) (KB4293803) - 14.0.2002.14 (X64)   ...

    Prueba a implementar esta.

    https://javifer2.blogspot.com/search/label/auditor%C3%ADa%20con%20triggers

    viernes, 19 de abril de 2019 2:22