Visual Basic Foro

Programación => Bases de Datos => Mensaje iniciado por: Jeronimo en Septiembre 03, 2013, 06:13:30 pm

Título: Seguridad en MySQL
Publicado por: Jeronimo en Septiembre 03, 2013, 06:13:30 pm
Hola.
Tengo una base de datos MySQL.
¿Qué nivel de seguridad tiene?
¿Cómo almacena los datos MySQL?
Dentro de la carpeta "Data" hay carpetas con los nombres de las bases de datos. Los archivos ahí contenidos, ¿tienen todos los datos de las bases? Si fuera así, ¿serían fácilmente legibles?
Suponiendo que borrara los logs todos los días, ¿qué perjuicio traería?
Todo esto es porque quiero saber qué tan vulnerable es una bd MySQL en cuanto a que alguien pueda acceder a la pc y verla, o bien sacarla de ahí y procesarla en otro lado.
Muchas gracias.

Jerónimo
Título: Re:Seguridad en MySQL
Publicado por: seba123neo en Septiembre 05, 2013, 09:22:06 pm
las carpetas esas son las que almacenan la "estructura de cada tabla" fijate que hay un archivo para cada tabla, son con extension .frm como los formularios de visual basic , pero obvio otro formato.

los datos se almacenan en un unico archivo data, te vas a dar cuenta porque es el mas pesado, o sea si tenes 50 bases de 1 GB cada una, el archivo va a pesar 50GB.

por defecto mysql almacena asi, pero podes hacer que se divida un archivo para cada base de datos.

conozco casos de que con solo hacer backup de la carpeta donde estan las tablas y el archivo data, las bases fueron montadas a un servidor totalmente nuevo y las bases se levantaron correctamente, simplemente con hacer backup de esa carpeta data.

de seguridad no se que se podria hacer, habria que investigar.

saludos.
Título: Re:Seguridad en MySQL
Publicado por: Jeronimo en Junio 17, 2014, 11:43:22 pm
Antes que nada, te pido disculpas, seba123neo, porque nunca vi tu comentario. Recién ahora, que estoy buscando información, lo encontré. Muchas gracias.
Revivo esto porque tengo una consulta concreta con respecto a la seguridad de MySQL y VB.
Actualmente me conecto de la siguiente manera a mi bd:
Código: (VB) [Seleccionar]
Public BD AS ADODB.Connection
BD.Open ("Provider=MSDataShape.1; Extended Properties='DRIVER={MySQL ODBC 3.51 Driver}; DESC=; DATABASE=basededatos; SERVER=" & IPServidor & "; UID=usuario; PASSWORD=clave; PORT=3306; OPTION=3; ;';Persist Security Info=False; Data Provider=MSDASQL.1")

Luego, para escribir en la base de datos hago lo siguiente:
Código: (VB) [Seleccionar]
BD.Execute "INSERT INTO tabla (campo1, campo2, campo3) VALUES (valor1, valor2, valor3)"
Y para leer, lo siguiente:
Código: (VB) [Seleccionar]
Dim Tabla AS ADODB.Recordset
Set Tabla = New ADODB.Recordset
Tabla.CursorLocation = adUseClient
Tabla.Open "SELECT * FROM clientes", BD, adOpenStatic, adLockOptimistic
Tabla.Close
Set Tabla = Nothing

Ahora bien, ¿qué nivel de seguridad tengo en la transmisión de los datos (tanto de ida como de vuelta)?
La base de datos está en una pc dentro de una LAN y mi software se conecta desde otras pc dentro de esa LAN. Existe la posibilidad de que en un futuro alguien autorizado deba conectarse con mi software desde afuera de la LAN (a lo mejor, en ese caso, convenga crear una VPN, ustedes dirán).
¿Tengo que hacer algo especial para que se cifren los datos al realizar las consultas y recibir las respuestas?
Lo que quiero evitar son tres cosas:
1) Que alguien "snifee" los paquetes de datos.
2) Que alguien no autorizado se conecte de cualquier manera y por cualquier medio a la base de datos.
3) Que alguien, habiendo accedido a la pc donde está la base de datos (tanto por la red como físicamente, in situ), pueda ingresar en ella o sacar los archivos que comenta seba123neo (data) para luego montarla en otro lado.
¿Será posible hacer esto?
No sé si necesitan algo más de información de mi parte para poder ayudarme. Espero que lo puedan hacer, ya que me da un poco de miedo estar poniendo todo al alcance de cualquier malintencionado.
Muchas gracias.

Jerónimo