Frage

Ich versuche, zur Laufzeit über die BDE eine Verbindung zu einer Interbase-Datenbank herzustellen.Ich versuche dies in einem formlosen Projekt zu tun (aber nicht in einer Konsolen-App).Der Alias ​​ist bekannt.Ich rufe den Alias ​​aus der Registrierung ab.Beispiel:MeinAlias.

//create alias params list  
AParams:= TStringList.Create;  

//create a session to get alias parameters  
ASession:= TSession.Create(nil);  
ASession.SessionName := 'MainSession';  
try  
 ASession.GetAliasParams(tmpAlias, AParams);  
finally  
 ASession.Free;  
end;  


//connect to database 
dbMain:= TDatabase.Create(nil);  
with dbMain do  
begin  
 //AliasName:= 'MyAlias';  
 DatabaseName:= 'test';  
 LoginPrompt:= False;  
 Params.Assign(AParams);  
 try  
  Connected:=True;  
  if Connected then ShowMessage('Connected!') else ShowMessage('Failed to Connect!');    
 finally  
  Free;  
 end; //try  
end;//with  

//free alias params list  
AParams.Free;

Wie auch immer, es sieht nicht so aus, als ob Session.GetParams tatsächlich das Passwort erhält.Wie erhalte ich das Passwort?Gibt es eine Möglichkeit, alle Verbindungsinformationen von der BDE abzurufen und die Verbindung herzustellen, wenn ich den Alias ​​kenne?Ich möchte den Benutzernamen und das Passwort lieber nicht fest codieren, für den Fall, dass der Kunde sie in Zukunft ändert.

War es hilfreich?

Lösung

Shane, wenn Sie das Passwort aus der Datenbank erhalten könnten, indem Sie nur den Alias ​​kennen, wäre die gesamte Sicherheit der Datenbank sinnlos. Die Antwort lautet also NEIN , können Sie diese Informationen nicht abrufen, wenn Sie nur den BDE-Alias ​​kennen.Die Möglichkeit, eine Verbindung zu einer Datenbank mit Passwortschutz herzustellen, besteht darin, den Benutzer und das Passwort vom Endbenutzer anzufordern oder diese Informationen in einer verschlüsselten Konfigurationsdatei zu speichern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top