Comment puis-je obtenir un mot de passe Interbase si j'ai seulement l'alias BDE?
Question
Je suis en train de se connecter à un Interbase DB lors de l'exécution via le BDE. Je suis en train de le faire dans un projet sans forme (mais pas d'une application de la console). L'alias est connu. Je récupère l'alias du registre. Exemple: 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;
Quoi qu'il en soit, il ne ressemble pas à la Session.GetParams obtient effectivement le mot de passe. Comment puis-je obtenir le mot de passe? Y at-il un moyen d'obtenir toutes les informations de connexion du BDE et de faire la connexion si je connais l'alias? Je préfère ne pas coder en dur le nom d'utilisateur et mot de passe dans le cas où le client les modifie à l'avenir.
La solution
Shane, si vous pouvez obtenir le mot de passe de la base de données ne connaissant que l'alias, toute la sécurité de la base de données sera inutile. donc la réponse est NON , vous ne pouvez pas récupérer cette information ne connaissant que l'alias BDE. le moyen de se connecter à une base de données avec une protection par mot de passe est demander à l'utilisateur et le mot de passe à l'utilisateur final ou le stockage de ces informations dans un fichier de configuration crypté.