Как я могу получить пароль Interbase, если у меня есть только псевдоним BDE? - PullRequest
0 голосов
/ 02 февраля 2011

Я пытаюсь подключиться к базе данных Interbase во время выполнения через BDE.Я пытаюсь сделать это в бесформенном проекте (но не в консольном приложении).Псевдоним известен.Я получаю псевдоним из реестра.Пример: 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;

В любом случае, это не похоже на Session.GetParams фактически получает парольКак мне получить пароль?Есть ли способ получить всю информацию о соединении из BDE и установить соединение, если я знаю псевдоним?Я бы не стал жестко кодировать имя пользователя и пароль на случай, если клиент изменит их в будущем.

1 Ответ

6 голосов
/ 02 февраля 2011

Шейн, если вы сможете получить пароль из базы данных, зная только псевдоним, вся безопасность базы данных будет бессмысленной. поэтому ответ НЕТ , вы не можете получить эту информацию, только зная псевдоним BDE. способ подключения к базе данных с защитой паролем - запрос конечного пользователя и ввод пароля и сохранение этой информации в зашифрованном файле конфигурации.

...