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

Oracle Discussion :

[Profils utilisateur] Comment limiter le mot de passe


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 12
    Points : 11
    Points
    11
    Par défaut [Profils utilisateur] Comment limiter le mot de passe
    Bonjour,

    je suis en train de réaliser un projet où je doit mettre en place une limitation du contenu du mot de passe, autrement dit, je doit interdire que le profil mettent certain nom en mot de passe, un nombre de caractère maximum et par exemple soit obliger de mettre un chiffre dans le mot de passe.

    Je cherche depuis un petit moment et je me demande si quelqu'un ne saurait pas comment faire.

    Merci d'avance pour votre réponse.

    @+

  2. #2
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    La solution se trouve sûrement du côté du PASSWORD_VERIFY_FUNCTION...

    cf http://www.developpez.net/forums/viewtopic.php?t=273259
    (l'exemple fourni est pour bloquer systématiquement, mais vous pouvez vous en inspirez, je pense)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 154
    Points : 98
    Points
    98
    Par défaut
    Tu as la clause PASSWORD_VERIFY_FUNCTION dans la comande
    CREATE PROFILE
    http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96540/statements_611a.htm#SQLRF01310
    ORACLE, A consommer sans modération

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut


    http://www.developpez.net/forums/vie...light=password

    En adaptant un peu c'est tout simple

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    Merci pour vos réponses, avec elles j'ai pu réaliser les fonctions sans erreur mais maintenant, il me met une erreur comme quoi les paramètres de la fonction que j'ai faites ne sont pas valides lorsque j'essaye d'ajouter la fonction au profil.

    voici la fonction:

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
     
    CREATE OR REPLACE FUNCTION Verif_Pass_User(username VARCHAR2, password VARCHAR2, old_password VARCHAR2)RETURN boolean IS
     
    isin  boolean;
    isdigit boolean;
     
    chararray varchar2(52);
    digitarray varchar2(20);
     
    TYPE Tab_VarChar2 IS TABLE OF varchar2(4);
    tabpass Tab_varchar2;
     
    i integer;
    m integer;
     
    BEGIN
     
      m := length(password);
      digitarray:= '0123456789';
     
      IF password = username THEN
         raise_application_error(-20001, 'Mot de passe identique au nom de connexion');
      END IF;
     
      IF length(password) < 4 THEN
          raise_application_error(-20002, 'Mot de passe inférieur à 4 caractères');
      END IF;
     
      isdigit:=FALSE;
     
      m := length(password);
     
      FOR i IN 1..10 LOOP 
     
          FOR j IN 1..m LOOP 
     
             IF substr(password,j,1) = substr(digitarray,i,1) THEN
                isdigit:=TRUE;
                 GOTO findchar;
             END IF;
     
          END LOOP;
     
       END LOOP;
     
       IF isdigit = FALSE THEN
          raise_application_error(-20003, 'Votre mot de passe doit contenir au moins un chiffre');
       END IF;  
     
    <<findchar>>
     
    tabpass(1)  := 'tam';
    tabpass(2)  := 'camp';
    tabpass(3)  := 'tent';
    tabpass(4)  := 'azer';
    tabpass(5)  := 'qsdf';
    tabpass(6)  := 'wxcv';
    tabpass(7)  := 'cara';
    tabpass(8)  := 'mobi';
     
    i := 1;
    isin:=FALSE;
    WHILE (isin = false OR i<=8) LOOP 
     
      FOR j IN 1..m LOOP 
     
        IF substr(password,j) = substr(tabpass(i),1) THEN
     
          FOR k IN 1..length(tabpass(i)) LOOP
     
    	IF substr(password, j+k) = substr(tabpass(i),k) THEN
     
    	  isin := true;
     
    	ELSE
     
     	  isin := false;
     
      	END IF;
     
          END LOOP;
     
        END IF;
     
      END LOOP;
     
      i := i + 1;
     
    END LOOP;
     
       IF isin = TRUE THEN
          raise_application_error(-20004, 'Votre mot de passe est invalide, entrez-en un autre');
       END IF;
     
    END;
    /
    Y a-t-il quelque chose qui manque, car je suis complètement perdu.
    Merci encore pour vos réponse

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    Entretemps, j'ai trouver la solution, ma fonction était tout simplement invalide.
    Le problème était le / à la fin de la fonction.

    Merci quand même

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

Discussions similaires

  1. Squid: comment l'utilisateur peut changer son mot de passe?
    Par supInfo22 dans le forum Sécurité
    Réponses: 0
    Dernier message: 16/09/2011, 18h00
  2. Réponses: 2
    Dernier message: 10/07/2008, 15h44
  3. Réponses: 4
    Dernier message: 03/05/2007, 11h28
  4. Comment cacher un mot de passe ?
    Par benxitd dans le forum Windows
    Réponses: 2
    Dernier message: 02/12/2004, 10h59
  5. Comment changer le mot de passe sous Interbase
    Par ETOKA dans le forum InterBase
    Réponses: 3
    Dernier message: 05/08/2004, 11h25

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