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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-10-2004
joanajj joanajj is offline
Miembro
 
Registrado: jul 2003
Posts: 144
Poder: 21
joanajj Va por buen camino
Ado Y Password

Buenos días, me gustaría saber si saben como, o por lo menos decirme donde puedo mirar, como poner una clave en ado en tiempo de diseño y luego poder modicarla en tiempo de ejecución.

El caso es una aplicación que el cliente acceda con una clave inicial que yo pongo, y que luego el a su gusto la pueda modificar.


Un saludo...
Responder Con Cita
  #2  
Antiguo 25-10-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿Con qué Base de Datos estás trabajando?
La clave que pones en ADO en realiadad es la de la BD (ADO en sí es un método de acceso, no tiene clave).
En Bases de Datos de escritorio te puede servir utilizar la clave de acceso a la Base de Datos. Definir tú una inicialmente y luego que el cliente la cambie.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 25-10-2004
joanajj joanajj is offline
Miembro
 
Registrado: jul 2003
Posts: 144
Poder: 21
joanajj Va por buen camino
trabajo con access

Gracias por responder pronto. Trabajo con access. Supongo que la clave la puedo poner inicialmente con access, pero como la modifico en tiempo de ejecución???


Un saludo...
Responder Con Cita
  #4  
Antiguo 25-10-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Se puede hacer compactando la Base de Datos y dando un nuevo password para el proceso.
Importa la librería "Microsoft Jet and Replication Objects 2.6 Library" desde delphi y utiliza el siguiente código:

Código Delphi [-]
uses JRO_TLB;
 
procedure TForm1.Button1Click(Sender: TObject);
var
 engine: IJetEngine;
 src, dst, path: WideString;
begin
 // Directio donde se encuentra
 path := 'c:\temp\';
 //src: Base de Datos existente con assword antiguo
 src := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + path + 'dbdemos.mdb' +
  ';Jet OLEDBatabase Password=ANTIGUO';
  //dst: Base de Datos nueva con password cambiado
 dst := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + path + 'dbDemosNew.mdb' +
  ';Jet OLEDBatabase Password=NUEVO';
 
  // Compactar y cambiar el password
 engine := CoJetEngine.Create();
 engine.CompactDatabase(src, dst);
end;

La Base de Datos se debe abrir en modo exclusivo. Ésto te debe generar una base de datos nueva con el nuevo password; Si deseas luego puedes borrar la antigua (DeleteFile) y renombrar la nueva (RenameFile).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 26-10-2004
joanajj joanajj is offline
Miembro
 
Registrado: jul 2003
Posts: 144
Poder: 21
joanajj Va por buen camino
Funcionaaaa!!! una duda más

Buenos días, ante todo gracias. He probado lo que me dijistes y funciona perfectamente. Incluso, me facilita la tarea de compactar y reparar, ya que para hacerlo, usaba un createole yu llamaba a funciones access, lo que implica que el usuario tenga access instalado, y de esta forma no.
Tenga un par de dudas acerca de lo mismo, y te las pongo aquí para no salir del tema.

1ª) De la misma forma, aparte de cambiar la clave, es posible cambiar el usuario admin??? donde puede ver las funciones que hay en la librería que me dijistes???

2º) Necesito encriptar la clave de BD, pero el problema es que para introducir la clave sale el login prompt de BD, sabes si hay un evento al que pueda llamar antes de que la base de datos reciba la clave. Es decir

Clave: hola
encriptada,&/
Entonces en login prompt: usuario admin clave: hola(pero la bd debe recibir (,&/, )no se si lo has pillado. Además, es posible meter la clave a la BD a mano, para evitar el login prompt y así personalisar la petición de clave??

Espero no haberte enrrollado, un saludo...
Responder Con Cita
  #6  
Antiguo 26-10-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por joanajj
1ª) De la misma forma, aparte de cambiar la clave, es posible cambiar el usuario admin??? donde puede ver las funciones que hay en la librería que me dijistes???

2º) Necesito encriptar la clave de BD, pero el problema es que para introducir la clave sale el login prompt de BD, sabes si hay un evento al que pueda llamar antes de que la base de datos reciba la clave. Es decir
(1) Dentro de la cadena de conexión se pueden añadir:
User ID=Admin;Password=Password;
donde puedes colocar éstos parámetros de conexión.

(2) La Clave a mano puedes introducirla como te he comentado antes.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 26-10-2004
joanajj joanajj is offline
Miembro
 
Registrado: jul 2003
Posts: 144
Poder: 21
joanajj Va por buen camino
Lo probaré

Gracias de nuevo, por responder. Voy a probar.
Pero hay algo que no comprendo, la cadena que me pasastes era para compactar y cambiar clave, pero para identificarse sería otra cadena??? ya que al arrancar la aplicación, solo necesito identificarme y evitar el login prompt.


Gracias de nuevo...
Responder Con Cita
  #8  
Antiguo 27-10-2004
joanajj joanajj is offline
Miembro
 
Registrado: jul 2003
Posts: 144
Poder: 21
joanajj Va por buen camino
He probado y funciona...

He probado y funciona correctamente, lo único es que para validar la clave, la he pasado a través del connectionstring, y funciona perfecto.
Una ultima cosa y con esto cierro el tema( y no te doy más la lata-de momento ;-)

Crees que es viable pasar la clave encriptada a la base de datos, ya que si el usuario la olvida imagino que la única forma de recuperarla es madiante un programa que obtenga la clave de la BD, pero si está encriptada igual puede ser mas complicado recuperrarla o no???
Responder Con Cita
  #9  
Antiguo 28-10-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Post

Cita:
Empezado por joanajj
Crees que es viable pasar la clave encriptada a la base de datos, ya que si el usuario la olvida imagino que la única forma de recuperarla es madiante un programa que obtenga la clave de la BD, pero si está encriptada igual puede ser mas complicado recuperrarla o no???
(1) No es posible pasar la clave encriptada dentro de la cadena de connectionString.
(2) Dile al usuario que mejor que no pierda la clave porque sino perderá los datos.
(3) Si aun así la pierde hay en Internet varios programas que extraen la clave de un archivo de Access en sus diferentes versiones (eso no se lo digas al usuario ).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #10  
Antiguo 28-10-2004
joanajj joanajj is offline
Miembro
 
Registrado: jul 2003
Posts: 144
Poder: 21
joanajj Va por buen camino
Neftalí una cosa más...

Anoche probé y pude encriptar la clave, cambiarla con el JRO que me pasastes, y luego, paso la clave encriptada al conecctionstring y sin problem.

uso compact, pongo clave vieja encriptada, pongo la nueva encriptada, y la cambia. Luego modifico el connectionstring: cadena1+clave+cadena2, la pongo activa, y pa lante.
Te lo digo para que lo sepas,por si acaso.



Un saludos grande y gracias por tu ayuda, seguro que algo tendré que volver a preguntar, así que ya me verás por el foro.
Responder Con Cita
  #11  
Antiguo 28-10-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Entonces si lo has podido hacer es que no entendí bien lo que me explicabas... , de todas formas me alegro de que esté solucionado.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 07:49:27.


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