IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Gestion des utilisateurs HFSQL [WD23]


Sujet :

WinDev

  1. #1
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 723
    Points : 627
    Points
    627
    Par défaut Gestion des utilisateurs HFSQL
    Bonjour,

    je suis a bout touchant pour le passge d'une application de la version monoposte vers CS, jusque là ça passe pas trop mal.

    Une question dont je n'ai pas trouvé de réponse : lors de la création de l’installeur avec WDInstall, je peux définir de "proposer l'installation d'un serveur HFSQL", ici pas de soucis.

    Par contre lors de l'installation, le seul utilisateur mis en place est bien "admin" et sans mot de passe (si j'ai bien compris...)

    D'ou ma question, je voudrais lors de l'installation du serveur HFSQL mettre en place au minimum deux utilisateurs : un admin AVEC un mot de passe et un utilisateur spécifique a ma base de données du soft installé.

    Je n'ai rien vu au niveau de l'installeur, il y a une astuce pour mettre ça en place, par exemple lors de la première utilisation avec un code d'init avec, par exemple un HAjouteUtilisateur()

    Il n'y a rien de plus simple ? par exemple de définir lors de l'installation ces deux niveaux d'utilisateurs et les mots de passe associés, mon appli ne traitant pas de codes nucléaires, deux niveaux de base devraient suffire amplement.

    Excellente journée

    Olivier

  2. #2
    Membre habitué
    Profil pro
    Chef de projet Technique
    Inscrit en
    Avril 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet Technique

    Informations forums :
    Inscription : Avril 2007
    Messages : 89
    Points : 125
    Points
    125
    Par défaut
    Bonjour,

    Il faut faire une installe personnalisée, contenant HFSQL et une application qui va paramétré ta BDD. Je m'explique :
    - tu créer une application qui va ce connecter à ton serveur HF pour créer les utilisateurs avec les fonctions Windev associées.
    - tu créer une installation de cette application dans laquelle tu inclus l'installe de HFSQL.
    - à la fin de l'installe tu exécute en ligne de commande l'application qui paramètre tes comptes utilisateurs

    Bon dev

  3. #3
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 723
    Points : 627
    Points
    627
    Par défaut
    Merc pour la réponse, alors si j'ai bien compris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    1 - mon install met en place le serveur HFSQL 
     
    2 - mon appli , par exemple au démarrage contrôle si l'utilisateur "toto" existe : 
     
      -> si n'existe pas, je crée un utilisateur "toto" avec son mot de passe
      -> je mets un mot de passe au compte admin 
     
    3 - si la base n'existe pas  je créée une base de données "ma_BDD" par HcreationSiInexistant()
     
    4 - j'attribue des droits a "toto" sur ma base "ma_BDD"
    C'est bien quelque chose de ce type ?

    Olivier

  4. #4
    Membre habitué
    Profil pro
    Chef de projet Technique
    Inscrit en
    Avril 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet Technique

    Informations forums :
    Inscription : Avril 2007
    Messages : 89
    Points : 125
    Points
    125
    Par défaut
    exactement

  5. #5
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 723
    Points : 627
    Points
    627
    Par défaut
    Hello,

    je ne sais pas si c'est moi qui m'envole vers un code bizarroïde , je me retrouve avec ce genre de chose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    SI PAS HModifieDroitBaseDeDonnées(MaConnexion, "GRPE_USER",hDroitAjout + hDroitBlocage + hDroitConnexion + ...
    													hDroitCréationFichier+hDroitCréationVue + ...
    													hDroitExécutionProcédure + hDroitLecture + ...
    													hDroitModifAuto + hDroitModification + ...
    													hDroitSauvegarde + hDroitSuppression + ...
    													hDroitSuppressionFichier, ...
    													hAutorisé + TAB + hAutorisé + TAB + hAutorisé + TAB + ...
    													hAutorisé + TAB + hAutorisé + TAB + ...
    													hAutorisé + TAB + hAutorisé + TAB + ...
    													hAutorisé + TAB + hAutorisé + TAB + ...
    													hAutorisé + TAB + hAutorisé + TAB + ...
    													hAutorisé, ...
    													MaConnexion..BaseDeDonnées) ALORS
     
    		Erreur(HErreurInfo())
    SINON 
     
    	ajouter_journal("Droits modifiés sur la base " + MaConnexion..BaseDeDonnées + " pour GRPE_USER)											
     
     
    FIN
    .. .quand on a un assistant pour la fonction Saisie() et on se retrouve a compter les + TAB + ... je me dis que je ne pars pas forcément dans la bonne direction ...

    en plus, j'ai bien mis : + hDroitSuppressionFichier + , mais lors d'un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    		// supprimer les fichier avant remplacement
    		SI PAS HSupprimeFichier(MaConnexion,sBDD+"\" + sNomFichier) ALORS
    			Trace(HErreurInfo())
    		FIN
    j'a i une trace :

    Vous êtes connecté en tant que <Toto>.
    Cet utilisateur n'est pas autorisé à supprimer le fichier <Base_Test\Sorties.FIC> de la base de données <>.
    Cette autorisation peut vous être donnée par l'administrateur du serveur ou à l'aide du Centre de Contrôle HFSQL.
    Erreur renvoyée par le serveur <serveurseven:4900> :
    je veux juste un utilisateur qui a tous les droits, mais sur une seule base de données ...

  6. #6
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    La doc semble fausse. Elle dit que <Droits à modifier> est une constante de type entier, et idem, <Nouvelle Valeur> est de type entier.
    Et dans l'exemple, on a : sDroits est une chaîne

    Et le type chaine semble beaucoup plus cohérent que le type entier. Sinon, avec des constantes de type entier, qu'on additionne, le 'compilateur' n'a plus les moyens de savoir si on a fait a+b ou b+a. Alors qu'avec des constantes de type chaine, ça marche.

    Pour combiner les constantes, je ne vois rien dans la doc qui dit de mettre des séparateurs TAB, et donc je ferais hautorisé+hautrisé ...

    Mais dans ton cas, c'est plus simple : tu veux la même valeur hautorisé pour tous les droits, et, je cite la doc : Si une seule valeur est précisée dans ce paramètre <Nouvelle Valeur>, elle sera utilisée pour tous les droits indiqués dans le paramètre <Droits à modifier>.

    Si tu veux passer certains droits à autorisé, et d'autres à Interdit, tu peux lancer 2 commandes de suite, une où tu passes "hautorisé", et tous les droits correspondants, et une autre commande pour interdire les droits que tu veux interdire.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  7. #7
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 723
    Points : 627
    Points
    627
    Par défaut
    Merci, ta proposition pour la gestion des droits : tout mettre et ensuite enlever me simplifie la vie !

    Par contre j'ai toujours un soucis avec le "HSupprimeFichier()" qui me renvoie toujours une erreur :

    Vous êtes connecté en tant que <Toto>.
    Cet utilisateur n'est pas autorisé à supprimer le fichier <Base_Test\Type_ouverture.fic> de la base de données <>.
    Cette autorisation peut vous être donnée par l'administrateur du serveur ou à l'aide du Centre de Contrôle HFSQL.
    Erreur renvoyée par le serveur <localhost:4900> :
    J'ai mis pour test tous les droits admin sur l'utilisateur toto , aussi bien sur le serveur que sur la base de données (HFSQL CS).

    Avant d'utiliser HSupprimeFichier(), je ferme la connexion sur la base de donnée par HFermeConnexion(MaConnexion) et ensuite je me connecte au serveur, mais sans préciser la base de données (commne je l'ai lu sur certains posts pour ne pas "ouvrir" les fichiers) .

    Si je le fait avec l'utilisateur Admin ça passe, mais avec Toto ( qui a les mêmes droits que Admin) ça passe pas ....

    Il doit y avoir un truc que je fais faux, mais impossible de trouver quoi malgré mes recherches et mes multiples tests ... une idée ?

  8. #8
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 723
    Points : 627
    Points
    627
    Par défaut
    Bon j'avance dans mes investigations ...

    le seul moyen de ne pas avoir d'erreur en faisant des HCopieFichier() ou HSupprimeFichier() est d'être en SuperUtilisteur ...

    Bon le but étant de ne pas avoir un utilisateur avec tous les droits, je sui sbien avancé...

    J'ai testé de passer l'utilisateur "toto" en superutilisateur, juste le temps de faire mes copies / supressions de fichiers avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Hutilisateur..SuperUtilisateur = vrai
    avant d'utiliser les fonctions HSupprimeFichier() , bing erreur :

    Vous devez être un SuperUtilisateur pour passer l'utilisateur Toto en super utilisateur
    C'est logique, mais ça ne m'arrange pas vraiment ...

    Ce qui me turlupine c'est que cet utilisateur a bien le droit de supprimer un fichier sur cette base de données

    Nom : hsupprimefichier.png
Affichages : 1079
Taille : 12,4 Ko

  9. #9
    Membre confirmé
    Homme Profil pro
    Admin - Gestion reconverti en informatique
    Inscrit en
    Septembre 2017
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Admin - Gestion reconverti en informatique

    Informations forums :
    Inscription : Septembre 2017
    Messages : 328
    Points : 493
    Points
    493
    Par défaut
    Citation Envoyé par wd_newbie Voir le message
    J'ai testé de passer l'utilisateur "toto" en superutilisateur, juste le temps de faire mes copies / supressions de fichiers avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Hutilisateur..SuperUtilisateur = vrai
    avant d'utiliser les fonctions HSupprimeFichier() , bing erreur :
    Vous devez être un SuperUtilisateur pour passer l'utilisateur Toto en super utilisateur
    Toto est un simple utilisateur, ne pourra modifier un quelconque droit.
    Seul Admin peut modifier les droits des utilisateurs.
    Donc, connectez-vous en tant que tel.

  10. #10
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 723
    Points : 627
    Points
    627
    Par défaut
    Toto est un simple utilisateur, ne pourra modifier un quelconque droit.
    Oui, c'est logique , mais le but est de créer un utilisateur limité qui, si il se connecte sur le gestionnaire HSFQL en direct, ne peut pas faire de c*** mais qui aurait à la gestion depuis mon appli pour activer des sauvegardes.

    Le code de la sauvegarde contient le "HSupprimeFichier()" qui fait tousser la sécurité, il faudrait que, au moins pendant les x millisecondes ou je supprime les fichiers, cet utilisateur aie les droits de le faire

    C'est un peu le serpent qui se mord la queue

  11. #11
    Membre habitué
    Profil pro
    Chef de projet Technique
    Inscrit en
    Avril 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet Technique

    Informations forums :
    Inscription : Avril 2007
    Messages : 89
    Points : 125
    Points
    125
    Par défaut
    Citation Envoyé par wd_newbie Voir le message

    Si je le fait avec l'utilisateur Admin ça passe, mais avec Toto ( qui a les mêmes droits que Admin) ça passe pas ....

    Il doit y avoir un truc que je fais faux, mais impossible de trouver quoi malgré mes recherches et mes multiples tests ... une idée ?
    Je pense que l'user ADMIN doit être présent, tu ne peut pas ne pas garder un user superadmin. Et je pense que de tout façon pour des raison de maintenance tu devrais le garder.

  12. #12
    Membre habitué
    Profil pro
    Chef de projet Technique
    Inscrit en
    Avril 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet Technique

    Informations forums :
    Inscription : Avril 2007
    Messages : 89
    Points : 125
    Points
    125
    Par défaut
    pour ma part je créer l'admin avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // on met un administrateur superutilisateur 
    HUtilisateur.Login = "Admin"
    HUtilisateur.MotDePasse = "*****"
    HUtilisateur.Description = "Administrateur superutilisateur"
    HUtilisateur.SuperUtilisateur = Vrai
    HUtilisateur.Groupes = "Administrateurs"
    HAjouteUtilisateur(gcnxHyperFileCS)
    Et je n'est pas d'erreur de droit quelque soit l'opération.

    et pour un user standard le droit semble être hDroitSuppressionFichier :
    as tu essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HModifieDroitBaseDeDonnées(gcnxHyperFileCS,"User",hDroitSuppressionFichier,hAutorisé,gchNomBDD)

  13. #13
    Membre confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 723
    Points : 627
    Points
    627
    Par défaut
    Merci, pur la réponse

    J'ai fait un test avec ton code, il fonctionne bien du moment que l'utilisateur connecté au moment ou tu lances le code soit déjà "super utilisateur"

    on ne peut pas donner les droit a un utilisteur "lambda" le titre de SU juste le temps de faire certaines opérations et de le retirer juste après

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    .. code normal 
     
    HUtilisateur.SuperUtilisateur = Vrai 
     
    >> code qui demande des droits SU 
     
    HUtilisateur.SuperUtilisateur = Faux
     
    ... code normal
    J'ai aussi utilisé le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    HModifieDroitBaseDeDonnées(MaConnexion,"NORMAL_User",hDroitSuppressionFichier,hAutorisé,"BDD_Test")
    Mais ça ne change rien ... je vais devoir trouver un moyen autre que par programmation pour gérer mon soucis d'utilisateurs ...

    [EDIT]

    Bon, j'ai ajouté une boite de dialogue dans le code de restauration des fichiers :

    au moment de la restauration le soft demande un username et un password d'un superutilisateur de la base de donnée ...
    Au final ça filtre les personnes qui pourront effectuer une restauration complète, c'est pas plus mal

    Si la connexion échoue (mauvais login / pass ) , le soft affiche l'erreur et rebascule sur la connexion standard, ça marche bien

    On va dire que c'est résolu !

    Merci à tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/05/2005, 18h18
  2. [Oracle]probleme de gestion des utilisateurs
    Par gentarik dans le forum Oracle
    Réponses: 5
    Dernier message: 09/03/2005, 12h58
  3. [Gestion des utilisateurs] Changer l'interface simplifiée
    Par sekiryou dans le forum Windows XP
    Réponses: 4
    Dernier message: 19/01/2005, 05h42
  4. Administration MySQL gestion des utilisateurs
    Par MaxiMax dans le forum Administration
    Réponses: 2
    Dernier message: 01/07/2004, 13h56
  5. Gestion des Utilisateurs depuis une application
    Par LLaurent dans le forum XMLRAD
    Réponses: 4
    Dernier message: 25/03/2003, 16h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo