J'ai réalisé un script qui permet de modifier le mot de passe d'accès à une base de données Postgres:
Code : Tout sélectionner
' Chagement du mot de passe
Sub changerMdP
oIam= ThisDatabaseDocument.DataSource.User
mdp = InputBox(oIam & " : Saisissez votre nouveau mot de passe", "nouveau mot de passe")
If mdp = "" Then
MsgBox("Votre mot de passe est vide, il n'est pas modifié",16,"nouveau mot de passe")
Else
'voir https://www.postgresql.org/docs/8.1/static/sql-alterrole.html;
' ALTER ROLE davide WITH PASSWORD 'hu8jmn3';
maConnexion = ThisDatabasedocument.CurrentController.ActiveConnection
maRequete = maConnexion.createStatement()
strSQL = "ALTER ROLE """ & oIam & """ WITH PASSWORD '" & mdp &"' "
resultat = maRequete.executeUpdate(strSQL)
maRequete.close
'sauvegarder le mot de passe hu10jmn3
maConnexion.close
ThisDatabaseDocument.DataSource.User = ""
End if
End Sub
Le mot de passe de l'utilisateur est effectivement changé.
Mais, suite au changement de mot de mot de passe, j'ai l'erreur à l'ouverture du formulaire:
Statut SQL: FATAL: authentification par mot de passe échouée pour l'utilisateur « davide »
FATAL: authentification par mot de passe échouée pour l'utilisateur « davide »
Code d'erreur: 1
Couldn't establish database connection to 'sdbc:postgresql:dbname=referentiel
Et je n'arrive pas à revenir sur la fenêtre de saisie du mot de passe. le nom et ancien mot de passe reste en mémoire mais je ne sais pas l'effacer.
Cependant le fait d'ajouter
Code : Tout sélectionner
ThisDatabaseDocument.DataSource.User = ""
Y a-t-il moyen de supprimer ce message d'erreur?
J'ai essayé en vain de faire une déconnexion.
Merci de votre aide
Je peux fournir le fichier odb bien que je doute de l'apport de celui-ci car il est lié à une base sur un seveur local. Il ne comporte qu'un formulaire avec un bouton et ce script.
Cordialement
A+.