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

Administration MySQL Discussion :

permettre un create user a un utilisateur


Sujet :

Administration MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 179
    Par défaut permettre un create user a un utilisateur
    Bonjour à tous,


    Je me permets de poster, je suis un peu perdu en ce qui concerne les droits des user dans la base mysql.

    En fait j'ai créé un utilisateur autre que root, avec tous les droits (enfin justement pas vraiment), qui doit pouvoir se connecter à partir du domaine de mon entreprise.

    Je souhaite qu'il puisse ajouter un user dans la table de la base mysql, et qu'il puisse lui donner certains privilèges.

    La connexion se fait correctement,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    string ConnectionStr = "Database=mysql;Data Source=" + ip_du_pc + ";User Id=root;Password=mdp";
     
                Connection.ConnectionString = ConnectionStr;
     
                // Ici, on ouvre la connexion au serveur
                Connection.Open();
    Seulement lorsque je veux effectuer la requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    string Requete1 = "CREATE USER '" + user.identifiant + "'@'%' IDENTIFIED BY '" + user.motdepasse + "';";
     
                MessageBox.Show(Requete1);
     
                // On associe cette requête à la propriété SelectCommand du MySqlDataAdapter
                MyAdapter.SelectCommand = new MySqlCommand(Requete1, Connection);
                MyAdapter.SelectCommand.ExecuteNonQuery();
    J'ai l'erreur classique de CREATE USER failed. J'ai checké un peu, mais je me perds dans toutes les infos.
    C'est parce que ya que le root/localhost qui a les droits SUPER c'est ça ?

    Puis-je les donner à l'utilisateur créé ?
    Enfin si vous pouviez m'aiguiller sur ce sujet. Merci.

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    C'est dangereux ce que tu fais là !

    En plus avec @% tu autorises les connexions depuis n'importe quelle IP !

    Ceci dit, sauf erreur de ma part, pour lemoment ton code ne fait que céer un utilisateur MySQL sans aucun droit.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 179
    Par défaut
    Oui tout a fait, et en fait à la suite dans le code je GRANT les privilèges à l'utilisateur que je viens de créer.
    Mais bon comme je peux pas créer.... ?

    Je suis d'accord que c'était dangereux, mais au final je serais hébergé sur un intranet donc je vais pas laisser % je pense.
    Sinon du coup si je veux créer un utilisateur, je me connecte en root dans le soft c'est la seule solution?

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Je ne suis pas sûr de comprendre ton besoin mais j'ai l'impression que tu as juste besoin d'un utilisateur MySQL pour que l'application puisse se connecter et interroger la BDD.

    Si c'est ça, crée 1 utilisateur pour l'application qui n'a les droits que sur la BDD utilisée par l'appli puis paramètre dans l'appli la connexion à la BDD avec le bon login et le bon mot de passe de cet utilisateur. C'est classique.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT ALL PRIVILEGES ON la_bdd TO 'nom_user'@'ip_du_serveur_de_l_appli' IDENTIFIED BY un_mot_de_passe
    L'avantage de cette commande est qu'elle crée l'utilisateur en même temps qu'elle lui donne les droits.

    Et l'appli utilisera toujours cet utilisateur pour accéder à la BDD.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 179
    Par défaut
    En fait si je devais expliquer le contexte pour comprendre pourquoi c'était confus dans ma tête.

    J'ai développé un site web d'aide en ligne pour les mainteneurs de l'entreprise ou je fais mon stage.

    Les mainteneurs qui se connecteront doivent pouvoir effectuer quelques Select, quelques Insert sur certaines tables pas plus.

    Mais en plus de cela j'ai créé un soft a coté, uniquement pour l'entreprise, qui leur permet d'alimenter la base de données (Ajout de table, remplissage, etc... )
    et également d'ajouter un utilisateur, pour que seuls ceux ayant été ajoutés par l'entreprise puisse aller sur le site web.

    Donc je me suis un peu perdu parmi tout ça.

    Mais en fait je n'ai besoin de créer qu'un seul utilisateur ayant les droits spécifiques aux mainteneurs, et en revanche je crée une table dans ma base avec identifiant/mot de passe pour chaque mainteneur afin qu'il puisse accéder au site.
    Et a partir de ce site, je me connecte dans tous les cas avec le seul utilisateur créé.

    C'est bien ça la logique ?

  6. #6
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par Tanoak_LaCapuche Voir le message
    En fait si je devais expliquer le contexte pour comprendre pourquoi c'était confus dans ma tête.
    Déjà la phrase est confuse !

    J'ai développé un site web d'aide en ligne pour les mainteneurs de l'entreprise ou je fais mon stage.
    Jusque là c'est clair.

    Les mainteneurs qui se connecteront doivent pouvoir effectuer quelques Select, quelques Insert sur certaines tables pas plus.
    Directement sur la BDD ou à travers une application dans laquelle sont programmées les requêtes en fonction des actions de l'utilisateur ?
    C'est le plus souvent ainsi qu'on pratique ; on ne donne pas la main directement à l'utilisateur sur le SGBD mais à travers une application.

    Mais en plus de cela j'ai créé un soft a coté, uniquement pour l'entreprise, qui leur permet d'alimenter la base de données
    Ça c'est plutôt classique.
    (Ajout de table, remplissage, etc... )
    Ça c'est moins classique !
    En principe, on définit le modèle de données et on n'y touche que très rarement. L'ajout de table est plutôt du ressort d'un DBA ou du développeur de l'application lors d'une évolution majeure de celle-ci.
    Sauf dans de rares cas, l'utilisateur ne crée jamais de tables. Il ne fait que les remplir, mettre à jour des données ou en supprimer au travers de l'application.

    et également d'ajouter un utilisateur, pour que seuls ceux ayant été ajoutés par l'entreprise puisse aller sur le site web.
    Donc ça c'est une gestion des utilisateurs de l'application, pas des utilisateurs MySQL.

    Donc je me suis un peu perdu parmi tout ça.
    On dirait oui !

    Mais en fait je n'ai besoin de créer qu'un seul utilisateur ayant les droits spécifiques aux mainteneurs, et en revanche je crée une table dans ma base avec identifiant/mot de passe pour chaque mainteneur afin qu'il puisse accéder au site.
    Et a partir de ce site, je me connecte dans tous les cas avec le seul utilisateur créé.
    Si tu dois, comme je crois le comprendre, gérer l'accès des utilisateurs de l'application web, ta base de données doit comporter une table des utilisateurs de cette application, éventuellement associée à une table des groupes d'utilisateurs et /ou à une table des droits sur les fonctions de l'application.

    Le schéma classique est le suivant (MCD méthode Merise)
    Utilisateur -1,1----appartenir----0,n- groupe -0,n----avoir----0,n- droit

    Ce qui entraîne les tables suivantes :
    droit (drt_id, drt_libelle...) => Par exemple : 1, 'administration du site'
    groupe (grp_id, grp_libelle) => Par exemple : 1, 'Administrateurs' / 2, 'Utilisateurs simples'
    grp_avoir_drt (gad_id_groupe, gad_id_droit)
    utilisateur (usr_id, usr_id_groupe, usr_login, usr_mot_passe, usr_nom, usr_prenom...)

    Par ailleurs, l'application utilise un utilisateur MySQL pour se connecter à MySQL et lui soumettre les requêtes. cet utilisateur est créé manuellement par le DBA ou le développeur une seule fois à l'aide de la commande que j'ai donnée dans mon précédent message.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

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

Discussions similaires

  1. create user wizard
    Par zerocoolyoussef dans le forum ASP.NET
    Réponses: 2
    Dernier message: 09/05/2007, 10h32
  2. Problème avec le controle "create user wizard"
    Par iTanger dans le forum ASP.NET
    Réponses: 2
    Dernier message: 09/05/2007, 10h22
  3. create user dynamique
    Par Mihalis dans le forum Bases de données
    Réponses: 8
    Dernier message: 13/03/2007, 16h29
  4. CREATE USER / tablespace d'index
    Par Carlito_superheros dans le forum Oracle
    Réponses: 10
    Dernier message: 25/10/2005, 14h46
  5. create user, affectation droits et scripts sql
    Par hirochirak dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 03/02/2004, 10h21

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