Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Es Posible Ponerle Contraseña A Una Base De Datos Sqlite?
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Es Posible Ponerle Contraseña A Una Base De Datos Sqlite? 
 
bueno eso amigos... es posible proteger el contenido de una base de datos Sqlite? que sólo mi programa en gambas pueda entrar con un user y pass previamente configurado?... de no ser así existe otra alternativa a Sqlite que me pueda dar ese grado de seguridad?

saludos!
 



 
DEATH - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Es Posible Ponerle Contraseña A Una Base De Datos Sqlite? 
 
DEATH:
Lo bueno que tiene Sqlite, es que realmente es un uínico archivo, donde estan almacenados las tablas y datos.

 Puedes usar el comando "gpg" , para encriptar y desencriptar, mirate este enlace:
http://www.paulbernal.com/general/c...hivos-en-linux/

Saludos
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Es Posible Ponerle Contraseña A Una Base De Datos Sqlite? 
 
muchas gracias por la respuesta... investigaré sobre el uso de este medio a través de gambas ya que a la primera no se me ocurre como, pero apenas tenga un método de cómo trabajarlo con gambas lo estaré publicando...

saludos!
 



 
DEATH - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Es Posible Ponerle Contraseña A Una Base De Datos Sqlite? 
 
También puedes usar otro gestor de base de datos como mysql que sí te permite esa funcionalidad.
Saludos
 




===================
Migrando desde visual basic, el Gambas de Ms
Mi blog gambero
 
Dani26 - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Es Posible Ponerle Contraseña A Una Base De Datos Sqlite? 
 
Si lo pensé pero eso me demanda a tener otro soft instalado para que funcione mi soft. además no necesito una gran motor de base de datos ya que las transacciones que hago son pocas y super simples.
gracias de todas maneras
 



 
DEATH - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Es Posible Ponerle Contraseña A Una Base De Datos Sqlite? 
 
jsbsan estuve intentando con el método que me nombras pero creo que no es la solución que busco, a lo menos que a mi no se me ocurra como hacerlo.
La idea de encriptar esta buenísima pero necesito constantemente obtener información de la base de datos y por lo tanto necesitaría desencriptar e incriptar constantemente, pero ese no es el problema, el asunto es que intenté desencriptar con EXEC pero me me aparece una ventana emergente para introducir la contraseña del archivo, entonces comprenderás que no puedo estar preguntándole al usuario la contraseña a cada rato, menos decirle al usuario cual es el password.  Ahora si existe el modo de poder hacerlo de forma oculta que el usuario no se entere sería ideal.

He estado buscando información sobre otros motores de bases de datos que sean similares a Sqlite pero que tengan la capacidad de dar seguridad de acceso, pero no he tenido hasta ahora buenos resultados.

si alguien sabe de alguna solución lo agradecería mucho, mientras tanto sigo buscando.
 



 
DEATH - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Es Posible Ponerle Contraseña A Una Base De Datos Sqlite? 
 
DEATH:

Citar:
necesito constantemente obtener información de la base de datos y por lo tanto necesitaría desencriptar e incriptar constantemente

Vale, lo suyo es :

1º Cuando el programa arranca,desencriptar la base de datos "original"  y te pedira la clave una sola vez
2º haces una "copia" de la base de datos ya desencriptada en otra carpeta por ejemplo la temporal  (\tmp)
3º El programa trabaja con esa copia de la base de datos (el usuario hace accesos, añade registros, borra registros...), en la base de datos "copia"
4º Cuando termina la ejecucion del programa (finaliza el programa o se cierra), lo ultimo que hace es borrar la base de datos "original", y copia la que esta en la carpeta temporal y la encripta.

Inconvieniente que tiene: si se produce un fallo de luz, o un error en programa, no se realizaria el paso 4, y se perderian los datos que hubiera introducido el usuario en la sección.

Ahora si no te vale que te pida la clave una sola vez,  no creo que puedas usar gpg..

   Se me ocurre, que podrias hacer un método para encriptar la información... por ejemplo usando base64 (Enlace a gambasdoc), cuando guardes un registro, la cadena de texto las guarde con la funcion de base64, y cuando leas un registro, usas la funcion unbase64 (Enlace ).

Asi cualquiera que abriera el archivo de Sqlite (desde un visor, por ejemplo), no entenderia nada...

Creo que en el foro se habló hace tiempo de formas de encriptar datos... (mirate la opcion del foro de buscar, a ver que encuentras)
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Viernes, 14 Diciembre 2012, 17:23; editado 1 vez 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Es Posible Ponerle Contraseña A Una Base De Datos Sqlite? 
 
jsbsan escribió: [Ver mensaje]
DEATH:

Citar:
necesito constantemente obtener información de la base de datos y por lo tanto necesitaría desencriptar e incriptar constantemente

Vale, lo suyo es :

1º Cuando el programa arranca,desencriptar la base de datos "original"  y te pedira la clave una sola vez
2º haces una "copia" de la base de datos ya desencriptada en otra carpeta por ejemplo la temporal  (\tmp)
3º El programa trabaja con esa copia de la base de datos (el usuario hace accesos, añade registros, borra registros...), en la base de datos "copia"
4º Cuando termina la ejecucion del programa (finaliza el programa o se cierra), lo ultimo que hace es borrar la base de datos "original", y copia la que esta en la carpeta temporal y la encripta.

Inconvieniente que tiene: si se produce un fallo de luz, o un error en programa, no se realizaria el paso 4, y se perderian los datos que hubiera introducido el usuario en la sección.

Ahora si no te vale que te pida la clave una sola vez,  no creo que puedas usar gpg..

   Se me ocurre, que podrias hacer un método para encriptar la información... por ejemplo usando base64 (Enlace a gambasdoc), cuando guardes un registro, la cadena de texto las guarde con la funcion de base64, y cuando leas un registro, usas la funcion unbase64 (Enlace ).

Asi cualquiera que abriera el archivo de Sqlite (desde un visor, por ejemplo), no entenderia nada...

Creo que en el foro se habló hace tiempo de formas de encriptar datos... (mirate la opcion del foro de buscar, a ver que encuentras)


Se me ocurre hacer una sentencia para arreglar: "Inconvieniente que tiene: si se produce un fallo de luz, o un error en programa, no se realizaria el paso 4, y se perderian los datos que hubiera introducido el usuario en la sección."

Crear un archivo de texto, s que tenga la palabras "TRUE" O "FALSE" y jugar con esto para que cuando inicie el soft copie la base de datos al lugar donde va la original. si fue copiado es TRUE, si no fue copiado por que sucedió un fallo de luz etc etc, al ver el programa que en susodicho archivo existe FALSE automáticamente haría el remplazo.
 



 
Fenriz07 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Es Posible Ponerle Contraseña A Una Base De Datos Sqlite? 
 
solución!

jsbsan --- la verdad es que no me vale la idea que me pida la contraseña una vez, ya que eso me obliga a revelar la pass al usuario, y tampoco me gusta la idea de mantener todo el rato la conexión a la base de datos sólo para que no vuelva a pedir la contraseña, pero además si necesitara modificar la base de datos luego para volver a encriptarla habría que volver a ingresar la contraseña.

Trabajar con base64 en el ingreso de la info a la base de datos la verdad es que no me gusta la idea...



bueno...estudié bastante y di con la solución a mi problema, es muy posible que alguien le pase o le pasará lo mismo así que aquí esta:

Resulta que la idea de jsbsan de usar gpg es muy buena para encriptar mi base de datos Sqlite, pero el problema es que si quiero que mi programa en gambas encripte o desencripte mi base de datos, al momento de  mandarle el comando correspondiente por medio de EXEC o SHELL (gpg -c archivo.txt  para encriptar y gpg archivo.txt.gpg para desencriptar), aparece una ventanita en el cual me pide la contraseña para cualquiera de los dos eventos, entonces esto obliga a que el usuario tenga en su conocimiento el password y por ende no sirve de nada tener encriptada la base de datos.  
Al ver este problema pensé en deshacer la idea de usar GPG  y buscar alguna alternativa de base de datos que me pudiera brindar la seguridad de un user y pass, obviamente hay varios motores de BBDD que brinda esto pero son aplicaciones muy grandes para el trabajo que tendrá mi programa, además si quisiera ocupar Mysql o Postgree, me condiciona a que el usuario tenga instalado en su máquina estos motores de base de datos, pero como dije anteriormente, son muy grandes para el trabajo que tendrá mi aplicación y además estoy dependiendo de la instalación de otro software.

La solución la encontré con el mismo GPG enviándole la contraseña por medio del mismo comando y que éste la lea y así poder trabajar de forma interna la encriptación y desencriptación.
Los comandos son los siguientes:

Encriptar
Shell ("echo contraseña | gpg -c --passphrase-fd 0 prueba.txt") Wait


Desencriptar
Shell ("echo contraseña | gpg --passphrase-fd 0 prueba.txt.gpg") Wait



viendo el ejemplo para encriptar primero mando la contraseña, luego ejecuto el comando gpg, -c significa que haremos una encriptación simétrica el cual no requiere de llaves públicas ni privadas ya que en ese caso sería asimétrica, pero yo necesito que sea simétrica, luego viene con --passphrase-fd 0 aquí le estamos diciendo que lea la contraseña que le estoy enviando y luego aludo al archivo a encriptar (archivo.txt) y listo.  De este modo puedo encriptar y desencriptar con gambas y GPG de forma interna sin necesidad que el usuario introduzca una contraseña

bueno espero que a alguien más le sirva y gracias a todos por ayudar.
 



 
DEATH - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Es Posible Ponerle Contraseña A Una Base De Datos Sqlite? 
 
SQLITE normalmente lo uso para pruebas, pero en mi caso no es recomendable ni siquiera para pequeños datos porque como vas a hacer cuando se lo vayas a instalar a en otra maquina a alguien tendrías dolores de cabeza definiéndoles rutas y fuera de eso si te roban la base de datos en cambio con mysql podrá ser tedioso pero posees muchas funcionalidad aparte de protección llegas al rango de usarlo en forma remota
 



 
jousseph - Ver perfil del usuarioEnviar mensaje privadoVer la galería personal del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Base De Datos Sqlite gustavo_fleitas Bases de Datos 9 Viernes, 09 Agosto 2013, 08:55 Ver último mensaje
jsbsan
No hay nuevos mensajes Base De Datos Sqlite Basica Andando v3ctor Bases de Datos 1 Martes, 26 Noviembre 2013, 00:00 Ver último mensaje
shordi
No hay nuevos mensajes No Me Guarda El Usuario En La Base De Dato... miguel perez Bases de Datos 10 Lunes, 02 Diciembre 2013, 18:01 Ver último mensaje
miguel perez
No hay nuevos mensajes Crear Base De Datos Sqlite Con Codigo Como? v3ctor Bases de Datos 19 Sabado, 23 May 2015, 10:27 Ver último mensaje
shordi
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron