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

SQL Procédural MySQL Discussion :

Procédure stockée pour nouvel utilisateur


Sujet :

SQL Procédural MySQL

  1. #1
    Membre habitué
    Femme Profil pro
    Database
    Inscrit en
    Juin 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Database

    Informations forums :
    Inscription : Juin 2010
    Messages : 125
    Points : 135
    Points
    135
    Par défaut Procédure stockée pour nouvel utilisateur
    Bonjour,

    Mon problème est sans doute un cas d'école mais pour ma part, je n'arrive pas à le résoudre...

    Je désirerais créer une procédure stockée me permettant de créer un nouvel utilisateur sous MySql.

    Mon code est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    DELIMITER //
     
    CREATE PROCEDURE New_User(in name varchar(3), in password varchar(8))
      BEGIN
        CREATE USER \' ||name||\' IDENTIFIED BY \'||password||\';
     END//
    La syntaxe de l'ordre CREATE USER nécessite des quotes, donc j'ai tenté ma chance (en les protégeant), il ne me prend pas la valeur de mes variables...
    J'ai tenté de passé par les différents type de variables et j'ai toujours le même soucis... Du côté de la préparation de requêtes je fais choux blanc aussi...

    Berf, après un long moment de recherche sur le net et tout plein de test, je dois bien avouer ne pas avoir réussit ma quête...
    Pourriez-vous m'aider???

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 283
    Points : 11 742
    Points
    11 742
    Par défaut
    Il y a pas mal d'erreurs... commençons par les anecdotiques :
    • la concaténation dans MySQL se fait avec la fonction CONCAT, pas avec ||
    • password est un mot réservé, il vaut donc mieux éviter de l'utiliser comme nom de variable


    Plus fondamentalement, dans la syntaxe du CREATE USER, le nom d'utilisateur et le mot de passe sont prévues comme des constantes. Du coup, il n'y a qu'un PREPARED STATEMENT qui te permettrait de les rendre variable. Après test, il semblerait que le CREATE USER ne passe pas dans une proc stock ("PROCEDURE antoun.New_User can't return a result set in the given context").

    Du coup, je pense que la seule solution est d'insérer dans la table mysql.user, puis de faire un FLUSH PRIVILEDGES.
    Antoun
    Expert Tableau, Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  3. #3
    Membre habitué
    Femme Profil pro
    Database
    Inscrit en
    Juin 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Database

    Informations forums :
    Inscription : Juin 2010
    Messages : 125
    Points : 135
    Points
    135
    Par défaut
    Désolé pour les erreurs... Je reprends les procédures stockées et leur syntaxe après un long moment d'arrêt... la reprise est un peu dur

    J'ai tenté votre solution et ça fonctionne à merveille.

    Merci

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

Discussions similaires

  1. Procédure Stockée pour créer des TABLE dynamiquement
    Par GuyverZ dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 12/05/2009, 22h29
  2. Réponses: 2
    Dernier message: 28/05/2006, 23h31
  3. procédure stockée pour renvoyer un état dans une application
    Par erickoffi dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 27/10/2005, 19h05
  4. Réponses: 5
    Dernier message: 04/10/2004, 18h20
  5. Procédure stockée et multi utilisateurs
    Par Bruno34 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 30/04/2003, 15h32

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