[ owner @ 28.08.2008. 14:49 ] @
Pozdrav,

hteo bih uraditi import baze fromuser, touser na novu masinu.Imam export fajl u kojem se nalaze svi useri.Medutim problem je u tome sto ne znam sve passworde pojedinih usera tako da ih ne mogu kreirati.
Da li vec neko ima iskustva na koji nacin mogu desifrovat passworde dobijenih nap. iz tabele DBA_USERS....
[ brzak @ 28.08.2008. 14:51 ] @
ha ha ha
javi i meni kada saznas ;)
[ sasa_vu @ 28.08.2008. 15:10 ] @
Oracle hash-uje passworde, ne enkriptuje ih, sto znaci da ne mozes dobiti originalnu vrednost passworda ako ga vec ne znas.
Imas par resenja za tvoju situaciju.

Npr, kad importujes, pravis nove usere(koji mogu imati isti username).
Mozes da im das nove passworde a korisnike da obavestis o promeni, pa kasnije mogu da vrate svoje stare passworde ako hoce.
[ owner @ 28.08.2008. 15:18 ] @
Hvala sasa_vu, iako za tvoju opciju resenja znam, ali sam mislio da postoji mogucnost nekakvog encodinga postojecih passworda...
[ noctua @ 29.08.2008. 11:39 ] @
Pozdrav!

Postoji nacin da "migriras" usere bez da znas ista o njima... (Kljucna rec IDENTIFIED BY VALUES)
Samo sto je to malo tezi poso, licno mislim, da se ne isplati raditi za mali broj korisnika (za mali broj mozes i rucno: copy/paste).

Neki generalni algoritam bi bio (sourceDB= baza iz koje izvozis; targetDB = baza u koju uvozis):
1. napravis skript koji ce se izvesiti na sourceDB i napraviti txt fajl sa instrukcijama za izvrsavanje. Skript ce sakupiti usere (user name, pass i ostale stvari bitne za user-a)
2. iz sourceDB napravis damp shema koje imaju aplikacije (vlasnici su tabelela). Ali, po jedan dump za za svaku semu sa tabelama.
3. na targetDB kreiras identicne korisnike (samo one koji sadrze tabele-aplikacije)
4. na targetDB uradis IMP za svaki dump ponaosob
5. nad targetDB pustis skript iz tacke 1

skript iz tacke 1 bi trebalo da izgleda ovako:

Code:

SELECT 'CREATE USER "'
         || u.NAME
         || '" identified by values '''
         || u.PASSWORD
         || ''' .... '
FROM     sys.user$ u
WHERE u.NAME NOT IN (SYS,SYSTEM....)


Napominjem da je ovo samo jedan od generalnih algoritama... Potrebno je, naravno, napraviti iste skripte i za "prenos" ROLA, GRUPA, TABLE_SPACE-a i ostalih stvari...

U svakom slucaju, mozes da odradis full import sa jednim korisnikom (po mogucstvu istim kao i na sourceDB) i kasnije samo primenis adekvatnu skriptu iz tacke 1.

PS. Skriptu moras da napises sam jer zavisi od toga sta hoces da preneses (samo pass; pass + role; pass+role+default tablespace; nesto sasvim trece...)... Takodje, to sta hoces da preneses ce uticati i na broj skripti (ako su samo role - idu posebno... itd)...

PSS. Pogledaj SYS tabele... tamo ces naci sve sto ti treba o korisnicima, vlasnistvu.... samo treba znati sta hoces...
[ noctua @ 29.08.2008. 11:47 ] @
Pozdrav!

Eh, da. Zaboravih malopre da dodam:
Kazes da "Imam export fajl..." Sta je za tebe export fajl?
Ako je to "full dump" onda mozes bez ikakve muke da odradis (sam ce sve da odradi) sa
IMP parametri, FULL =YES
A ako je to dump seme, onda, glupo pitanje: otkud ti svi korisnici?? Neko ih dodao negde? U nekoj tabeli?

Pojasni malo sta ti zapravo imas (kakav je to export fajl)? Mozda pricamo o poslu koji ne treba da se radi...