Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   BD SQLite protegida por Usuario y Contraseña (https://www.clubdelphi.com/foros/showthread.php?t=80009)

martini002 28-08-2012 18:11:48

BD SQLite protegida por Usuario y Contraseña
 
Saludos Amigos, donde quiera que se encuentren,

Desde hace varios dias vengo teniendo una duda
es posible asignarle a una BD de SQLite un nombre de usuario
y contraseña? asi como los permisos que agregamos en MySQL?
porque no quisiera que viniera otra persona copiara mi BD
y la abriera en un Manager de BD pudiendo sacar la informacion
que tengo alli almacenada, he estado buscando pero no he dado con la solucion
aun no.

Gracias infinitas.

roman 28-08-2012 18:37:52

¿Y cómo va a ir alguien a copiar tu base? Todos tienen acceso a tu pc?

// Saludos

martini002 28-08-2012 18:39:03

En un supuesto negado, uno nunca sabe Roman
;)

Gracias

roman 28-08-2012 18:42:17

Pero para eso hay otros mecanismos. Ponle seguridad a tu PC.

// Saludos

martini002 28-08-2012 18:45:06

No se puede colocarle usuario y contraseña a la BD?
no lo puedo creer :O

Entonces tocara esconder la BD en un algun
agujero negro del directorio Windows :S

roman 28-08-2012 18:50:25

Lo puedes hacer como con cualquier otro archivo de windows. Lo pones bajo la contraseña de un usuario.

// Saludos

martini002 28-08-2012 18:53:20

Bajo la proteccion de una cuenta en Windows?
osea como si tuviera que iniciar sesion con esa cuenta para poder usar la BD?
no lo veo muy claro,
la cuestion es que esta BD debe ser usada por varias personas
pero no todas tienen los mismos permisos para escribir o modificar algo

Gracias

roman 28-08-2012 19:00:00

¿Y eso qué? Haces un grupo al cual das permisos para usar la base y metes a esos usuarios en ese grupo.

// Saludos

martini002 28-08-2012 19:02:16

Ok eso lo puedo hacer, para gestionarlo desde el programa
pero y si copio el archivo, y me lo llevo?
y lo abro con un Administrador de BD? como SQLite Expert Personal?

roman 28-08-2012 19:05:51

Y, ¿cómo va alguien a copiar el archivo y llévarselo si no puede acceder a él?

// Saludos

martini002 28-08-2012 19:08:22

Bueno facil, te metes en el directorio del programa,
vas a la carpeta de la BD y copias el archivo,
o hay alguna forma de incrustarlo dentro del *.exe?

roman 28-08-2012 19:13:33

Bueno, una de dos. O no estás leyendo o piensas que la seguridad de windows la rompe cualquiera. Un usuario que no esté en el grupo al que das derechos, no podrá acceder a ese directorio y/o archivo.

// Saludos

martini002 28-08-2012 19:34:55

No roman, creo que no estoy explicando bien,
vamos a hacerlo mas facil,
Supongamos que tengo un respaldo de la Base de datos
de mi programa en un Disco compacto, solo ese archivo, por la razon que fuera,
y ese Disco lo toma otra persona, entonces podria leer facilmente esa informacion,
ahora, no quisiera que la Base de datos dependiera de la seguridad de windows,
me gustaria que para poder conectarte al programa y leer los datos,
entonces usaras un login y un pass, eso no es posible en SQLite?

Cuando creo una Base de Datos en MySQL puedo asignarle usuarios y permisos,
si no tienes el login y el pass de algunos de esos usuarios, simplemente
no puedes acceder a nada de lo que este alli adentro.

roman 28-08-2012 19:37:19

Si copias tus bases de mysql en un disco compcto y alguien se los lleva, no tendrá ningún problema en montarlas en un servidor y leer todos tus datos.

// Saludos

martini002 28-08-2012 19:48:59

A ver,
esta es una BD que hice rapidito con permisos,

http://www.mediafire.com/?qc9oua5i4c1vak3

hay solo dos registros, esta construida en MySQL con el PHPMyAdmin
podrias ver que hay alli adentro y editar los registros?
Gracias

roman 28-08-2012 19:51:50

No puedo. El archivo rar aparece vacío.

// Saludos

Casimiro Noteví 28-08-2012 19:52:38

Además, sqlite está pensada para ser usada principalmente en un equipo local, o sea, monousuario, por lo que no tiene mucha lógica que controle usuarios y permisos.

roman 28-08-2012 19:54:28

Es que estamos hablando de dos tipos de seguridad, como en el otro hilo del día. Por un lado el acceso físico a la base, que puede protegerse como con cualquier archivo del sistema, y el acceso via el gestor de datos, del que, ciertamente, carece sqlite.

// Saludos

martini002 28-08-2012 20:02:24

Ya veo, entonces como seria la cuestion de seguridad de archivos por parte de windows?
osea que si no entro a mi sesion entonces no tendria acceso a esos archivos?

La otra que veo asi, seria ocultar el archivo para que no sea de facil acceso,
vi busqueda de archivo. que piensan sobre eso?

que raro lo del archivo, aqui lo volvi a subir
http://www.mediafire.com/?bc16ubcecgdvb8z

Caral 28-08-2012 20:07:43

Hola
Yo sigo opinando que deberias cambiar de DB a Firebird, incluso la puedes manejar con los mismos ZEOS sin casi modificaciones a tu programa.
Si revisas este tutorial veras lo sencillo que es.
Saludos

roman 28-08-2012 20:08:40

Sigue mal el archivo. Ponlo en otro lugar porque, además, ese sitio me abre varias ventanas adicionales que no me interesan.

// Saludos

martini002 28-08-2012 20:30:06

Hola Caral,
con el FireBird puedo resolver el problemita de la seguridad?
y otra cosa, funciona similar que SQLite? a nivel local,
osea no hay necesidad de instalar el FireBird en cada maquina donde correra el programa?

Hola Roman,
que cosa tan extraña, lo comprimi dos veces,
y lo subi dos veces, y no se porque dice que el archivo esta corrupto,
despues que lo bajo de mediafire, (el cual es el mejor hosting de archivos)
para evitar las ventanas molestas te recomiendo usar el AdBlockPlus como complemento
para Firefox o Chrome, eso te elimina todas esas publicidades y molestias,
por otro lado como podria subir esto como archivo adjunto a un mensaje aqui?

Gracias

martini002 28-08-2012 20:32:23

1 Archivos Adjunto(s)
A ver prueba con este archivo :/

Caral 28-08-2012 20:36:47

Hola
Firebird tiene usuario y clave, no es como sqllite.
Firebird se puede conectar incluso desde tu casa al trabajo.
Para correr el programa solo se necesitan tener instalados los dll que trae el mismo firebird.
Hay mucha informacion de firebird y aqui Casimiro es un experto.
Saludos

martini002 28-08-2012 20:39:10

Bueno entonces vamos a cambiarlo,
supongo que lo que unico que hay que hacer
es una BD con sus tablas y sus campos iguales
tal cual los tengo con SQLite?
y cambiar el archivo en el ZConnection del Delphi?
porque del resto supongo es igual no?

Gracias

Caral 28-08-2012 20:45:17

Hola
Si has usado el sql normal sera igual.
Aveces tiene algunos confiticos con los datos, eso es porque firebird no acepta que se pongan datos que no son los que deberían ser.
Haz la prueba, no pierdes nada, es mas, vas a salir ganando.
Aqui te ayudan los maestros con tus dudas y yo te apoyo moralmente....^\||/
Saludos

roman 28-08-2012 20:47:48

Cita:

Empezado por martini002 (Mensaje 440935)
con el FireBird puedo resolver el problemita de la seguridad?

Vas a tener exactamente el mismo problema. Te digo que parece que no estás leyendo :p

// Saludos

Jcordero 28-08-2012 20:48:37

pues ponle clave a tu seccion de windows
 
o ponle contraseña a tus carpetas

Cita:

Empezado por martini002 (Mensaje 440896)
Saludos Amigos, donde quiera que se encuentren,

Desde hace varios dias vengo teniendo una duda
es posible asignarle a una BD de SQLite un nombre de usuario
y contraseña? asi como los permisos que agregamos en MySQL?
porque no quisiera que viniera otra persona copiara mi BD
y la abriera en un Manager de BD pudiendo sacar la informacion
que tengo alli almacenada, he estado buscando pero no he dado con la solucion
aun no.

Gracias infinitas.


Jcordero 28-08-2012 20:52:16

una pregunta al foro
 
para que se usan los archivos auxiliares y los historiales, disculpen la pregunta es que soy nuevo
gracias

martini002 28-08-2012 20:52:30

Madre Mia,
entonces me estas diciendo Roman, que en lo que respecta a BD
no hay una solucion de seguridad bastante buena como para evitar
que alguien pueda leer tus datos? sea como sea que lo intente
la cuestion es que se proteja de cualquier acceso no autorizado

Caral voy a hacer un respaldo de lo que llevo hasta ahora
y le montare el FireBird a ver como me va,

Gracias por el consejo

martini002 28-08-2012 20:54:19

Cita:

Empezado por Jcordero (Mensaje 440944)
para que se usan los archivos auxiliares y los historiales, disculpen la pregunta es que soy nuevo
gracias

Como asi los archivos auxiliares y los historiales?
a que te refieres mas precisamente?

Saludos

Jcordero 28-08-2012 21:00:55

A que cuando uno guarda un historial de los movimientos de una tabla o una base de datos

martini002 28-08-2012 21:03:17

Cita:

Empezado por Jcordero (Mensaje 440947)
A que cuando uno guarda un historial de los movimientos de una tabla o una base de datos

Bueno son registros aparte que te ayudaran a descubrir alguna mala practica
por parte del que maneje la base de datos, siempre tienes que tener registrado
todo, o por lo menos a mi me gusta asi, porque es el soporte de que algo
se hizo o no se hizo, o si se hizo bien o en su defecto mal pues.

Saludos

martini002 28-08-2012 21:05:28

Hola Caral,
ya instale el FireBird
tengo una duda, esta libreria "FBCLIENT.DLL"
sera la que tiene que estar instalada en cada cliente
para poder tener acceso a la BD?
tal cual como SQLite.DLL?

Gracias

Jcordero 28-08-2012 21:21:04

donde puedo conseguir o descargar el FireBird?

Caral 28-08-2012 21:29:23

Hola
Hay mucha información en internet sobre eso, recuerda que yo no se mucho de estas cosas.
Creo que son un par de librerias que tienes que poner en el cliente, nada complicado.
saludos

Caral 28-08-2012 21:33:39

Hola
Aqui
saludos

Casimiro Noteví 28-08-2012 21:47:47

Cita:

Empezado por Jcordero (Mensaje 440953)
...

Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración :)


Por cierto, esto no es un chat ;)

ElMug 01-09-2012 21:52:47

Cita:

Empezado por martini002 (Mensaje 440896)
Saludos Amigos, donde quiera que se encuentren,

Desde hace varios dias vengo teniendo una duda
es posible asignarle a una BD de SQLite un nombre de usuario
y contraseña? asi como los permisos que agregamos en MySQL?
porque no quisiera que viniera otra persona copiara mi BD
y la abriera en un Manager de BD pudiendo sacar la informacion
que tengo alli almacenada, he estado buscando pero no he dado con la solucion
aun no.

Gracias infinitas.

Si hay maneras de hacerlo, Martini, y eso depende de habilidades e iniciativa personal, como todo.

Squlite tiene una capacidad muy especial de conectarse a varias bases de datos simultaneamente.

Con ello, puedes tener una base de datos que sea solo para passwords y que solo la aplicacion sepa donde se encuentra ubicada.

Puedes instalar tanto la base de datos principal, como la base de datos de passwords de manera que SOLO la aplicacion sepa sus nombres y ubicacion de archivos. La aplicacion controla el log-in, y solo abre la base de passwords por un breve instante, que es practicamente lo mismo que hacen las bases de datos con password (solo que esas usan una tabla de una misma base de datos).

Inclusive, por si no lo saben, ambos archivos pueden ser INVISIBLES, y ADEMAS, pueden adicionalmente camuflagearlos con cualquier nombre y apellido, pues a SQLite NO LE IMPORTA la extension del archivo.

Aparte de todo, como ya indico Roman, puedes agrupar a los usuarios de la base de datos con permiso para que solo ese grupo acceda a la base de datos, y/o TAMBIEN puedes agrupar y controlar el acceso a LA APLICACION.

En otras palabras, mediante la aplicacion puedes implementar un fuerte dispositivo de seguridad para que segun el grupo o grupos, unos puedan hacer unas cosas y otros no, y como usarias una base de datos aparte, para passwords, basicamente una tabla, en esa tabla puedes tener columna de PERMISOS o "roles", y hasta puedes hacer esto mas avanzado que lo que brindan para passwords otras bases de datos, pues controlas los 'roles' a tu manera.

A toda base de datos que no este encriptada se le pueden leer los datos, aunque tenga passwords.

SQLite no es encriptada de base, pero para SQlite hay drivers (independientes) que permiten el uso de basesdedatos de SQLite encriptadas. En general, yo no recomiendo la practica de encriptarlas, por varias razones, para la mayoria de los usos.

Tambien, aparte, a SQlite la puedes abrir de lugares remotos, y SI se puede usar como multiusuario, siempre y cuando no sea una aplicacion de acceso por cientos de clientes, y muchos de ellos requieran grabar datos simultaneamente.

Tambien a parte de tu pregunta: cuando quieras guardar el backup de la base de datos y passwords a un dispositivo externo (usb flashdrive por ejemplo), simplemente comprimelos con la opcion de password, usando 7-Zip. Si alguien obtiene el dispositivo, no podra leer ningun dato.

Casimiro Noteví 01-09-2012 22:04:57

Y si te llevas esa base de datos a otro equipo, ¿puedes abrirla con una utilidad del tipo sqlite manager?


La franja horaria es GMT +2. Ahora son las 11:04:58.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi