Avatar billede enurris Nybegynder
14. oktober 2002 - 15:34 Der 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.
Avatar billede lasse_buck Nybegynder
14. oktober 2002 - 23:35 #1
Hej,

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.)
Avatar billede lasse_buck Nybegynder
15. oktober 2002 - 00:07 #2
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.
Avatar billede lasse_buck Nybegynder
15. oktober 2002 - 02:13 #3
Bemærk:
Det er vigtigt at man husker nøgleordet VALUES, når man sætter det krypterede password med ALTER USER.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



Seneste spørgsmål Seneste aktivitet
I går 23:37 Poe strøm Af lurup i LAN/WAN
I går 14:46 GIF-EDITOR Af snestrup2000 i Billedbehandling
I går 14:03 Logge ind Af Bob i PC
I går 12:12 2 skærme - 1 virker - den anden siger No signal Af eksmojo i Skærme
I går 10:33 openvpn projekt Af dcedata1977 i Windows