Existe alguna forma nativa o externa de poner contraseñas a las tablas de VFOX?

433 views
Skip to first unread message

TheNewInquirer

unread,
Mar 17, 2012, 4:58:35 PM3/17/12
to Comunidad de Visual Foxpro en Español
He visto que en access se puede poner una contraseña al contenedor mdb
donde están todos los archivos relacionados con las bases de datos que
usará el motor jet del access.

Existe en Fox alguna forma nativa o mediante alguna utilería, de
asignar una contraseña a las tablas DBF?...

Ya se que la solución es usar tecnología Cliente-Servidor(un gestor de
BD) en vez del Modo Compartido de Archivos de Windows (Forma Nativa de
Fox o el Jet de Access y otros).

Pero mi pregunta es, existe, existió, o existirá una forma de evitar
que un usuario experimentado haga un simple USE Mitabla y abra la
tablita?...

Bueno, tampoco el Access es la gran maravilla porque sé que hay muchas
utilerías que pueden decifrar anagramas tanto de Access como de Excel.

Ya sé que algunos, apenas inicia el sistema de Fox y "levantan"
codigos que pueden hacer que las tablas en uso sean imborrables, pero
mientras están en la aplicación.

Pero que pasa, si por casualidad, se tiene instalado el Fox para
labores de mantenimiento de las tablas o con otros fines.??

Solo quiero saber si existe una forma..Solo es una duda persistente en
mi cabeza jeje.

Saludos!

Daniel Sánchez

unread,
Mar 17, 2012, 7:04:53 PM3/17/12
to publice...@googlegroups.com
En VFP que sepa NO!.

Saludos

--
Daniel Sánchez Escobar
Investigación y Desarrollo
Reset Software & Sistemas
Móvil +051-949398047
Trujillo - Perú

PD. Creo que fue unos de los motivos por los que me cambie a trabajar con SQLServer.

Viktor Velazquez

unread,
Mar 17, 2012, 8:01:49 PM3/17/12
to publice...@googlegroups.com

hay de paga Cryptor crypro de Xitech, muy buenos ke no permiten abrir las tablas pero son de paga tienes que comprar la licencia.. ooo los puedes usar como .app con el fox instalado en cada pc.. saludos...


Date: Sat, 17 Mar 2012 18:04:53 -0500
Subject: Re: [vfp] Existe alguna forma nativa o externa de poner contraseñas a las tablas de VFOX?
From: resets...@gmail.com
To: publice...@googlegroups.com

Luis Maria Guayan

unread,
Mar 17, 2012, 9:21:07 PM3/17/12
to publice...@googlegroups.com
Hay un truco para solicitar una clave de acceso al abrir una tabla contenida en una DBC.

-- Evitar la apertura de tablas contenidas en un DBC --
http://www.portalfox.com/article.php?sid=2404


Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

TheNewInquirer

unread,
Mar 17, 2012, 11:03:58 PM3/17/12
to Comunidad de Visual Foxpro en Español
Ok. Gracias por ilustrarnos!

Pienso que si voy a vivir varias horas de mi vida frente al Visual
Fox, por lo menos es bueno saber "con que tipo de novia" estoy
tratando jeje

Saludos!

Walter R. Ojeda Valiente

unread,
Mar 18, 2012, 6:59:51 AM3/18/12
to publice...@googlegroups.com
Hay una forma, que ya ha sido utilizada por muchos y me extraña que nadie te la haya dicho aún. Consiste en lo siguiente:

- Como seguramente sabrás, las tablas .DBF están compuestas por una cabecera donde se encuentran ciertos datos, como la estructura de la tabla, la cantidad de registros que contiene, etc. y por un detalle, donde se encuentran los datos ingresados por los usuarios
- El truco consiste en cambiar algunos bytes de la cabecera de tal manera que sea imposible abrir la tabla con un simple USE
- Tu aplicación restaura los bytes correctos en la cabecera y de esa manera se puede utilizar esa tabla sin problema mientras dicha aplicación esté corriendo
- Al salir de la aplicación se vuelven a poner en la cabecera datos incorrectos, para que sea inaccesible desde afuera de ella

Si deseas evitar que mientras tu aplicación esté corriendo se pueda utilizar dicha tabla, entonces lo que puedes hacer es lo siguiente:
- Copias el archivo original .DBF (el cual se encuentra protegido), a otra carpeta, con otro nombre y otra extensión
- Al archivo copiado le restauras la cabecera correcta
- Utilizas el archivo copiado
- Al finalizar tu aplicación, cambias los bytes de su cabecera para que sea inaccesible y lo copias a la misma carpeta donde se encuentran los .DBF

De esta manera, nadie podrá abrir los .DBF, solamente tu aplicación podrá hacerlo.

Saludos.

Walter.



> Date: Sat, 17 Mar 2012 13:58:35 -0700
> Subject: [vfp] Existe alguna forma nativa o externa de poner contraseñas a las tablas de VFOX?
> From: thenewin...@gmail.com
> To: publice...@googlegroups.com

HernanCano

unread,
Mar 18, 2012, 9:05:07 AM3/18/12
to Comunidad de Visual Foxpro en Español
Buenos días.

Coincido con lo que dice y propone Walter, pero me gusta más la
alternativa que menciona Luis María, porque la pregunta que hace
nuestro "nuevo preguntante" es precisamente:

"Hay alguna forma de ....?"

Chao....

Carlos Miguel FARIAS

unread,
Mar 18, 2012, 9:06:01 AM3/18/12
to publice...@googlegroups.com
Walter: Como manejas un entorno multiusuario? Porque el primero que entra tiene que corregir y el último machacar.
Y si el usuario llega a descubrir como proteges, arranca la aplicación y luego de abrir las tablas lo cancela.
Luis Maria: Si las tablas las abre por odbc, el evento de la tabla abierta es detectado (ejecutado)?, porque si no desde una planilla de calculo con odbc, se conecta y ups!!!
Saludos: Miguel, Santa Rosa (LP)

P.D. Si ya se, NO TENGO QUE USAR TABLAS NATIVAS,NO TENGO QUE USAR TABLAS NATIVAS,NO TENGO QUE USAR TABLAS NATIVAS,NO TENGO QUE USAR TABLAS NATIVAS,NO TENGO QUE USAR TABLAS NATIVAS,NO TENGO QUE USAR TABLAS NATIVAS,NO TENGO QUE USAR TABLAS NATIVAS,NO TENGO QUE USAR TABLAS NATIVAS,NO TENGO QUE USAR TABLAS NATIVAS,NO TENGO QUE USAR TABLAS NATIVAS,NO TENGO QUE USAR TABLAS NATIVAS,

Walter R. Ojeda Valiente

unread,
Mar 18, 2012, 9:32:10 AM3/18/12
to publice...@googlegroups.com
Hola Carlos

Ya lo dije anteriormente:
- En una carpeta temporal se guardan las tablas desencriptadas, con una extensión distinta a .DBF
- Se abren dichas tablas desencriptadas
- Se les inserta/borra/modifica datos
- Si nadie más las está usando, se las vuelve a encriptar
- Se guarda la tabla en la carpeta original, con la extensión .DBF

Desde luego que no es algo 100% seguro pero al menos le dificultará mucho la vida a los curiosos.

Saludos.

Walter.





Date: Sun, 18 Mar 2012 10:06:01 -0300
Subject: Re: [vfp] Existe alguna forma nativa o externa de poner contraseñas a las tablas de VFOX?
From: carlosmig...@gmail.com
To: publice...@googlegroups.com

Carlos Miguel FARIAS

unread,
Mar 18, 2012, 9:51:26 AM3/18/12
to publice...@googlegroups.com
TA!
Solo confio en cama, sofa y mesada, otros muebles no se la aguantan (a pero esto ya lo debes saber)

Luis Maria Guayan

unread,
Mar 18, 2012, 12:20:59 PM3/18/12
to publice...@googlegroups.com
Carlos, no he probado con ODBC, pero el último ODBC para tablas VFP es para VFP7. Si tu tabla contiene campos autoincrementales por ejemplo, aun sin ningún truco las podrás abrir.
Ej:
Prueba primero con la DBC TestData y luego con NorthWind comentando/descomentando la 1° y/o 2° línea

lcDBC = "\Northwind\Northwind.dbc" && DBC de la versión 8 y 9
*lcDBC = "\Data\Testdata.dbc"  && DBC de la versión 7 y menor

lcCnxStr = "Driver={Microsoft Visual FoxPro Driver};SourceType=DBC;SourceDB=" + ;
  HOME(2)+ lcDBC + ;
  ";Exclusive=No; NULL=NO;Collate=Machine;BACKGROUNDFETCH=NO;DELETED=NO;"
lnHnd=SQLSTRINGCONNECT(lcCnxStr)
IF lnHnd < 0
  AERROR(laErr)
  lcErr = laErr(2)
  MESSAGEBOX(lcErr)
ELSE
  MESSAGEBOX("Conexión exitosa")
  lcSql = "SELECT * FROM Customers"
  IF 0 >= SQLEXEC(lnHnd, lcSql, "MiCursor")
    BROWSE
  ELSE
    AERROR(laErr)
    lcErr = laErr(2)
    MESSAGEBOX(lcErr)
  ENDIF
  SQLDISCONNECT(lnHnd)
ENDIF


Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________


Carlos Miguel FARIAS

unread,
Mar 19, 2012, 7:20:03 AM3/19/12
to publice...@googlegroups.com
O sea que el ODBC saltea el procedimiento almacenado, y debe saltear
los triggers de integridad referencial, porque evidentemente, para
ejecutar los triggers, que es código VFP, el odbc no creo que pueda
manejarlo, igual que las otras constraints como check.
O sea que el único bloqueo sería como lo plantea Walter, porque al
haber alterado la cabecera, ningún otro programa podra acceder a los
datos (que sean de tipo binario, integer, currency, datetime y los
memos), los otros son visibles y por lo tanto "manoteables".
Saludos: Miguel, La Pampa (RA)

El 18/03/12, Luis Maria Guayan <luism...@gmail.com> escribió:

Reply all
Reply to author
Forward
0 new messages