Как я могу получить межбазовый пароль, если у меня есть только псевдоним BDE?

StackOverflow https://stackoverflow.com/questions/4869944

Вопрос

Я пытаюсь подключиться к межбазе DB во время выполнения через 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 и сделать соединение, если я знаю псевдоним? Я бы предпочел не жестко кодировать имя пользователя и пароль в случае, если клиент изменит их в будущем.

Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top