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

Langage SQL Discussion :

[SQL SERVER]Création table de Login avec création mot pass


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2003
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2003
    Messages : 87
    Points : 93
    Points
    93
    Par défaut [SQL SERVER]Création table de Login avec création mot pass
    Création d'une table de Login avec création d'un mot de passe basé (en partie) sur le contenu d'une table


    Bonjour,

    L'en-tête du message à rallonge risque d'effrayer, mais ça me semble + clair.

    Je dispose d'une table Annuaire avec les colonnes Nom, Prenom, Email.

    Je dispose d'une table PAYS avec les colonnes ID, Pays.
    Cette table me sert de base pour la création du mot de passe. J'ai choisi pays mais ça aurait pu être n'importe quoi d'autre.

    J'ai créé une table LOGIN qui contient les colonnes Login, Email, Password.

    La colonne Login contiendra les prenom + nom concaténés de la table Annuaire,
    La colonne Email récupérera la colonne Email de la table Annuaire,

    J'aimerais que la colonne Password contienne un pays suivi d'un nombre aléatoire (entre 0 et 200)

    C'est ce qui me pose problème.

    En oubliant momentanément la génération du mot de passe, j'obtiens la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO WifiLogin 
     (Login, Email, Password) 
    (  
    SELECT     { fn LCASE(Annuaire.Prenom) } + '.' + { fn LCASE(Annuaire.Nom) } AS Login, Annuaire.Email,
                            'mot de passe' AS Password
    FROM Annuaire )
    En cherchant à générer le mot de passe, j'arrive à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Pays + CONVERT(varchar, round((rand() * 200), 0)) AS Password
    FROM         Pays ORDER BY NEWID()

    mais bien entendu, ça renvoit le nom du Pays concaténé avec le même chiffre à chaque ligne

    =>
    Afghanistan85
    France85
    Algerie85
    AfriqueduSud85

    etc...

    alors que j'aimerais obtenir
    Etats-Unis85
    Turquie0
    Albanie123
    Mozambique12
    etc...

    Donc, j'ai déjà un problème sur la génération du mot de passe. Et ensuite, il faudrait que j'arrive à réaliser une belle requête INSERT (avec la génération du mot de passe).


    Je ne sais pas si c'est suffisamment clair.

    Quelqu'un a-t-il une idée ?

    Par avance, merci de vos réponses,

    Matthieu.

    PS : Si vous avez en tête une solution équivalente qui existe et qui fonctionne, je suis preneur

  2. #2
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut Re: Création d'une table de Login avec création d'un mot de
    Citation Envoyé par MatthieuQ
    Quelqu'un a-t-il une idée ?
    Merci de jeter un oeil sur les Conseils à lire avant de poster
    En effet, tu ne nous a pas précisé ton SGBD.

    En ce qui concerne ton souci, j'aurais tendance à passer par une procédure gérant un curseur sur la table Login, pour une attribution du mot de passe ligne à ligne : la fonction RAND serait alors appelée à chaque passage dans la boucle, te générant ainsi des valeurs distinctes. Je ne sais pas si c'est la meilleure solution ...
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2003
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2003
    Messages : 87
    Points : 93
    Points
    93
    Par défaut
    Désolé pour l'oubli de l'intitulé. C'est corrigé.

    Merci pour la réponse. Ton idée est intéressante. Malheureusement je ne sais pas la mettre en oeuvre n'étant guère un spécialiste en scripts SQL.

    Je partais vers une appli sous VB pour justement faire une boucle d'insertion. Mais c'est surement inventer à nouveau la roue !

Discussions similaires

  1. [SQL SERVER 2008] Erreur de login 18456 avec Sharepoint
    Par Captain Caverne dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 31/01/2011, 13h29
  2. Probleme casse fichier texte avec création table SAS
    Par pierre24 dans le forum SAS Base
    Réponses: 4
    Dernier message: 16/05/2008, 10h52
  3. [SQL SERVER 2005] echec lors de la création d'une connexion
    Par sun19 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 20/03/2008, 11h06
  4. SQL Server 2005 - ETL - Insertion données avec vérification.
    Par Mailgifson dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/12/2007, 12h22
  5. [SQL Server 2005] Tables système et indexes
    Par Tips dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/04/2006, 09h01

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