FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
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. |
#2
|
||||
|
||||
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 |
#3
|
||||
|
||||
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. |
#4
|
||||
|
||||
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; 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; // Saludos |
#5
|
||||
|
||||
Lo olvidaba. Tienes que agregar las unidades Bde, Db y DbTables en la cláusula uses
// Saludos |
#6
|
|||
|
|||
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
|
|
|
|