BDEエイリアスのみがある場合、インターベースパスワードを取得するにはどうすればよいですか?
質問
私は、BDEを介して実行時にベース間DBに接続しようとしています。私はこれを無形のプロジェクトでやろうとしています(ただし、コンソールアプリではありません)。エイリアスは知られています。レジストリからエイリアスを取得します。例: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;
とにかく、セッションのようには見えません。getParamsは実際にパスワードを取得します。パスワードを取得するにはどうすればよいですか?エイリアスを知っている場合、BDEからすべての接続情報を取得し、接続を作成する方法はありますか?将来クライアントがそれらを変更した場合に備えて、ユーザー名とパスワードをハードコードしたくありません。
解決
シェーン、データベースからパスワードを取得できれば、エイリアスを知っているだけで、データベースのすべてのセキュリティは無意味になります。 答えはノーです 、BDEのエイリアスを知っているだけであるこの情報を取得することはできません。パスワード保護でデータベースに接続する方法は、ユーザーとパスワードを最終ユーザーにリクエストするか、この情報を暗号化された構成ファイルに保存することです。
所属していません StackOverflow