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.

Était-ce utile?

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é.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top