Oracle heeft in database versie tot en met 10g een mechanisme om een gebruiker hetzelfde wachtwoord te geven, zonder dat je het wachtwoord weet.
Dit is het bekende

Alter user <username> identified by values ‘<password>’;

Password is een hash, die verkregen kan worden door middel van:

select password from dba_users where username='<username>’;

In Oracle 11g is dit mechanisme enigszins veranderd. Dit valt op doordat het password veld in dba_users nu leeg is. Dit veld is nog wel te query-en uit de view user$.
Tevens is er een nieuw veld bijgekomen, namelijk: password_versions.
Dit geeft aan of een wachtwoord een versie 10g of 11g is. Het grote verschil zit in de hash lengte en case-sensitive zijn van het wachtwoord. In 11g kan een wachtwoord nu case-sensitive zijn, hetgeen ook uit gezet kan worden door middel van:
alter system set sec_case_sensitive_logon=false;

De “oude” manier van alter-user-identified-by-values werkt nog steeds, met password veld uit de user$ view, maar dan veranderd het wachtwoord naar versie 10g en daardoor is het wachtwoord niet langer case-sensitive. Aanloggende gebruikers zullen hier geen last van ondervinden, maar het kan netter.
Dit is mijn geprefereerde methode:

set long 1000
select dbms_metadata.get_ddl(‘USER’,'<username>’) from dual;

Het resultaat is een create user statement met daarin de indentified-by-values optie, die rekening houdt met de wachtwoord versie.
Dit statement kan dan gebruikt worden voor een alter user statement.