|
| Iniciado por Monsieur Serge, 27,jul. 2020 06:04 - 3 respuestas |
| |
| | | |
|
| |
Miembro registrado 213 mensajes |
|
| Publicado el 27,julio 2020 - 06:04 |
Bonjour,
Dans les Todo de ma liste j'avais à protéger ma base de données avec un mot de passe. Opération jumelée au cryptage, déjà défini dans l'analyse.
Petite moulinette réutilisable avec HChangeMotDePasse. Hop, un nouveau mot de passe pour chaque fichier.
1) ..CryptageFic et ..ProtégéParMotdePasse indiquent vrai pour chaque table. 2) Je confirme par l'analyse de mon projet, je dois fournir un mot de passe. 3) Je confirme par le centre de contrôle, je dois fournir un mot de passe. 4) Je suis heureux.
Fin du mode "super utilisateur HFSQL".
----------- Déclaré au niveau du projet:
MaConnexion est une Connexion Sommaire de mon module de connexion:
MaConnexion..Provider = hAccèsHFClientServeur MaConnexion..Serveur = "NomDuServeur:4900" MaConnexion..Utilisateur = "NomDuCompte" < MaConnexion..MotDePasse = "LeMotDePasse" MaConnexion..BaseDeDonnées = "NomDeLaBD" MaConnexion..Accès = hOLectureEcriture MaConnexion..Cryptage = hCryptageRC5_16
bSuccès = HChangeConnexion(MaConnexion..BaseDeDonnées, MaConnexion) SI bSuccès = Vrai ALORS bSuccès = HPasse(MaConnexion..BaseDeDonnées, "MotDePasseDeLaBD") SI bSuccès = Vrai ALORS bSuccès = HOuvreConnexion(MaConnexion) RENVOYER bSuccès Le module retourne vrai mais j'ai un blocage sur mot de passe. Le mot de passe est bon puisque le super utilisateur peut l'utiliser.
Même si je n'aime pas les "*", je cède à la tentation.
HChangeConnexion("*", MaConnexion) HPasse("*", "MotDePasseDeLaBD") J'ai encore un blocage.
HPasse après HConnexion? Contre l'avis de PcSoft? (https://doc.pcsoft.fr/fr-FR/?9000176) Même résultat, j'ai un blocage sur mot de passe.
Variable de type Connexion, HChangeConnexion, HPasse, HOuvreConnexion, Forum. J'ai pasé un temp fou à tenter de trouver la solution à mon problème. Jusqu'à tout fermer et tout redémarrer, à tout hasard.
Je viens de résoudre mon problème par une bricole.
cListe est une chaîne = HListeFichier() POUR TOUTE chaîne cFichier de cListe SEPAREE PAR RC HPasse(cFichier, "MotDePasseDeLaBD") FIN Ça fonctionne, mais je suis déçu.

Si j'ai 500 tables, ça fera autant d'appel au serveur. Il y a quelque chose que je ne comprends pas...
Serge
-- ----- Parfois, la logique est implacable... |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 213 mensajes |
|
| Publicado el 27,julio 2020 - 17:12 |
Mmmm...
HPasse(MaConnexion..BaseDeDonnées, "MotDePasseDeLaBD") Pas d'erreur, mais ça ne passe toujours pas. J'ai une erreur de mot de passe lorsque j'ouvre une table.
HPasse("*", "MotDePasseDeLaBD") Fonctionne ce matin...
Je soupçonne Windev de s'amuser à mes dépens...

-- ----- Parfois, la logique est implacable... |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 291 mensajes |
|
| Publicado el 27,julio 2020 - 18:47 |
Bonsoir Monsieur Serge par indirection ?
cListe est une chaîne = HListeFichier() POUR TOUTE CHAÎNE cFichier DE cListe SÉPARÉE PAR RC HPasse({cFichier}, "MotDePasseDeLaBD") FIN
Bien cordialement |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 213 mensajes |
|
| Publicado el 27,julio 2020 - 19:42 |
Gemini,
cListe est une chaîne = HListeFichier() POUR TOUTE chaîne cFichier de cListe SEPAREE PAR RC HPasse(cFichier, "MotDePasseDeLaBD") FIN Le bout de code est fonctionnel tel quel, l'indirection n'est pas nécessaire. Ce que je ne comprenais pas, c'est pourquoi je devais m'y résoudre.
hPasse("*", "MotDePasseDeLaBD") ne fonctionnait PAS hier, mais est fonctionnel ce matin.

Bref, je vais me résoudre au "*" dans HPasse même si je n'aime pas l'idée.
Merci pour la note.
Serge
-- ----- Parfois, la logique est implacable... |
| |
| |
| | | |
|
| | | | |
| | |
|