Как я могу получить межбазовый пароль, если у меня есть только псевдоним BDE?
Вопрос
Я пытаюсь подключиться к межбазе 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. Способ подключения к базе данных с защитой пароля - это запросить пользователя и пароль конечному пользователю или сохранение этой информации в зашифрованном файле конфигурации.