Come posso ottenere una password interbase se ho solo l'alias BDE?
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.
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.