14. oktober 2002 - 15:34Der er
2 kommentarer og 1 løsning
Verificer brugernavn og password på eksisterende forbindelse
Hvordan kan man verificere et brugernavn og password er korrekte, ud fra en eksisterende forbindelse, uden at skulle logge på, og oprette en ny forbindelse?
-i forbindelse med connectionpooling mister man fordelen ved de eksisterende forbindelser, hvis man skal spilde tid på at oprette en ny forbindelse, kun for at verificere at brugeren har tastet rigtigt brugernavn og password ind.
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
Jeg har søgt i metalink og fandt ikke umiddelbart noget, som kunne bruges. Jeg fandt tværtimod dette svar, som tyder på at en sådan funktionalitet ikke er til rådighed: From: Andre Luiz Coutinho 03-May-02 01:56 Subject: validate password
Is there any function where i pass like parameter user and password and return me if the user exist ?? -------------------------------------------------------------------------------- From: Oracle, Smitha Nath 03-May-02 14:45 Subject: Re : validate password
Hi Andre, There is no pre-defined function which will take in the username and password and return you whether the user is a valid user or not. (Herefter skriver de, at man kan søge på eksistensen af brugernavnet i tabellen all_users.)
Jeg har fundet en løsning du måske kan anvende. Den er ikke specielt pæn, men muligvis acceptabel i dit tilfælde. Valideringen bygger på ændring af password og kræver derfor en connection med dba adgang.
I tabellen DBA_USERS ligger alle brugernavne og deres password (krypteret) gemt. Password ligger på krypteret form. Når du skal kontrollere et login (user_x/pw_x) gør du følgende: 1. Findes brugernavnet i tabellen? (Ellers afvises straks) 2. Læs det KRYPTEREDE password - gem det i en VARCHAR2(30) variabel. 3. Skift password på brugeren så det nu er det indtastede password. ALTER USER 'user_x' IDENTIFIED BY 'pw_x'. 4. Sammenlign den nye KRYPTEREDE værdi i tabellen DBA_USERS med den gemte værdi. 5a. De ens. Der er indtastet korrekt password. 5b. De er ikke ens. Password sættes tilbage til det oprindelige, og login afvises. Det oprindelige password sættes med: ALTER USER 'user_x' IDENTIFIED BY VALUES 'det krypterede password'.
Det er lidt smart :o) Jeg håber du kan bruge det. Jeg har inkluderet noget af den oprindelige forklaring, da min forklaring måske er mangelfuld.
From: Daniel Wolf 16-Dec-99 17:25 Subject: Re : Check Password for SYSTEM (Bruger vil gerne kontrollere, om SYSTEM har 'MANAGER' som password)
Since you know the password is manager your next step is to determine if the encrypted version of manager equals the encrypted version currently in the database.
The sollution to this is based on a little known feature:
alter user x identified by values 'encrypted password here'
What you want to do is grab the original password for the user from dba_users. Save it in a varchar2 string. Using dynamic pl/sql change the current user password to manager. Grab the newly encrypted password from the dba_users table and compare the old and the new. If they are identical, then you know they are using the password manager.
When you are done, remember to return the original password to the user by using the above command: alter user x identified by values 'encrypted password'. You must remember the values clause, otherwise it will change the password to be the actual encrypted values.
Bemærk: Det er vigtigt at man husker nøgleordet VALUES, når man sætter det krypterede password med ALTER USER.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.