Domanda

Sto cercando di connettermi a un DB interbase in fase di esecuzione tramite BDE. Sto cercando di farlo in un progetto senza forma (ma non in un'app di console). L'alias è noto. Recupero l'alias dal registro. Esempio: Myalias.

//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;

Ad ogni modo, non sembra che la sessione.getparams ottiene effettivamente la password. Come ottengo la password? C'è un modo per ottenere tutte le informazioni sulla connessione dal BDE e stabilire la connessione se conosco l'alias? Preferirei non codificare duramente il nome utente e la password nel caso in cui il client li cambia in futuro.

È stato utile?

Soluzione

Shane, se è possibile ottenere la password dal database solo conoscendo l'alias, tutta la sicurezza del database sarà inutile. quindi la risposta è no , non puoi recuperare queste informazioni solo conoscendo l'alias BDE. Il modo per connettersi a un database con una protezione da password è richiedere l'utente e la password all'utente finale o memorizzare queste informazioni in un file di configurazione crittografato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top