Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-11-2003
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Poder: 21
mlara Va por buen camino
Borrar Password de tabla Paradox

Hola.

Ahora ando haciendo de las mías con Paradox, pero no he podido completarlas. Aquí va:

- Tengo una base de datos Paradox.
- Todas las tablas están protegidas con contraseña.
- Cuando comprimo las tablas el tamaño no se reduce ya que la herramienta que comprime no lo puede hacer con archivos encriptados (quiero decir, genera el zip pero demasiado grande).
- Esta compresión de la que hablo la hago desde mi aplicación Delphi.
- Entonces para poder comprimir toda la base de datos necesito eliminar el password de cada una de las tablas Paradox, desde mi aplicación.

Ya he buscado y no he encontrado nada aún.

Los métodos de TSession, RemovePassword y RemoveAllPasswords no sirven para esto. Estos métodos sólo borran la lista de passwords que uno previamente ha adicionado para acceder a las tablas. Lo que necesito es borrar el password de las tablas o, dicho de otra manera, desencriptarlas.

¿Alguien sabe como podría hacerlo?

Gracias.
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.
Responder Con Cita
  #2  
Antiguo 25-11-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No voy a responder a lo que preguntas ya que en estos momentos no sé pero quiero hacerte una recomendación:

Olvidate de basar la seguridad de tu sistema con passwords en tablas de Paradox. Es absolutamente ineficiente y cualquier perosna que sepa teclear encontrará en internet el password "maestro" para abrir cualquier tabla de paradox.

// Sáludos
Responder Con Cita
  #3  
Antiguo 25-11-2003
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Poder: 21
mlara Va por buen camino
Bueno bueno... Pues en eso estoy de acuerdo. Sólo que quisiera saber si alguien me puede ayudar con mi pregunta, pero además después de lo que has dicho también quisiera saber si entonces existe otra forma de proteger los datos tal que no sea el asunto tan ineficiente y tan fácil de descifrar.
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.
Responder Con Cita
  #4  
Antiguo 25-11-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Prueba esta función:

Código:
procedure AlterMasterPassword(
  Database: TDatabase; TableName: String; Password: String; Add: Boolean);
var
  TableDesc: CRTblDesc;

begin
  Session.AddPassword(Password);

  FillChar(TableDesc, SizeOf(CRTblDesc), #0);
  with TableDesc do
  begin
    StrPCopy(szTblName, TableName);
    StrCopy(szTblType, szPARADOX);
    StrPCopy(szPassword, Password);
    bProtected := WordBool(Add);
  end;

  Check(DbiDoRestructure(Database.Handle, 1, @TableDesc, nil, nil, nil, false));
end;
Database será una componente TDatabase ya inicializada (AliasName, DatabaseName) y abierta.

TableName el nombre de la tabla que a la que deseas agregra o quitar el password.

Password es la contraseña maestra.

Add indica si deseas agregar (true) o eliminar (false) el password.

Ejemplo de uso:

Código:
var
  Database: TDatabase;

begin
  Database := TDatabase.Create(nil);
  Database.AliasName := alias de tu base
  Database.DatabaseName := 'dbtemp';
  Database.Open;

  try
    // Quita el password de la tabla 'tabla1'
    AlterMasterPassword(Database, 'tabla1', Password, false);

    // Agrega password a la tabla 'tabla2'
    AlterMasterPassword(Database, 'tabla2', Password, true);
    ...
  finally
    Database.Free;
  end;
end;
Happy?

// Saludos
Responder Con Cita
  #5  
Antiguo 25-11-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Lo olvidaba. Tienes que agregar las unidades Bde, Db y DbTables en la cláusula uses

// Saludos
Responder Con Cita
  #6  
Antiguo 25-11-2003
AdrianD AdrianD is offline
Miembro
 
Registrado: may 2003
Ubicación: San Juan - Argentina
Posts: 113
Poder: 21
AdrianD Va por buen camino
A pesar de que ya te han dado la solución, coincido con roman en cunato a las password. En la pagina de torry (www.torry.net) existe una password para abrir cualquir tabla paradox
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 04:15:42.


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