orac Geschrieben 18. September 2006 Teilen Geschrieben 18. September 2006 Hallo, wiedermal eine Frage rund um die Migratie oracle 8i nach 9i Users sollen migriert werden in eine andere Datenbank. Hierfuer lege ich die User in der neuen Datenbank neu an. Hierbei sollen allerdings die Passwoerter die in der alter Datenbank gebraucht werden, mitgenomen werden. Users lege ich volgendermassen an # Create other users with TBS xx for usname in user1 user2 user3 do echo "create user $usname" echo "CREATE USER $usname PROFILE DEFAULT IDENTIFIED BY xx DEFAULT TABLESPACE ${DEF_TBS} TEMPORARY TABLESPACE ${TEMP_TBS} ACCOUNT UNLOCK; exit"| sqlplus -s ${USERNAME}/${PASSWORD} >> $LOG_FILE done; Jetzt hat jeder User das Passwort xx. Nun soll dies angepasst werden, sodass der user sein altes Passwort behalten kann. Ich habe hier ein beispiel kann damit aber nicht viel anfangen. Kann mir jemand erklaeren was bei diesem Beispiel passiert? Und wie kann ich es letzendlich gebrauchen? select 'alter user ' ||username || ' identified by values ' || '''' || password ||''';' from dba_users where username in ('user1','user2','user3'); Schon mal vielen Dank. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 18. September 2006 Teilen Geschrieben 18. September 2006 Ich habe hier ein beispiel kann damit aber nicht viel anfangen. Kann mir jemand erklaeren was bei diesem Beispiel passiert? Und wie kann ich es letzendlich gebrauchen? select 'alter user ' ||username || ' identified by values ' || '''' || password ||''';' from dba_users where username in ('user1','user2','user3'); dieses dynamische SQL "baut" per SELECT eine liste mit 'alter user' statements, und zwar pro user. in der alten DB aufgerufen, spuckt es die alten PW als sogenannter salt aus, welcher dann in der neuen DB mittels "identified by values <und hier das passwort aber nicht im klartext>" die zuvor neu angelegten user ändert. s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
orac Geschrieben 19. September 2006 Autor Teilen Geschrieben 19. September 2006 Hallo, vielen Dank fuer die Erklaerung. Ich verstehe nun was ich als Resultaat erhalte. Gerne wuerde ich noch wissen wie genau diese Liste erstellt wird, dies verstehe ich noch nicht. Wie ist das aufgebaut. Normalerweise habe ich select spaltenname [, spaltenname][,spaltenname]... from .... Wie muss ich das verstehen was jetzt anstelle der Spaltennamen steht? was bedeuten die || ? Kann ich auf Internet etwas finden, wie ich solche Anweisungen schreiben kann? Danke und schoene Gruesse, Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 19. September 2006 Teilen Geschrieben 19. September 2006 Gerne wuerde ich noch wissen wie genau diese Liste erstellt wird, dies verstehe ich noch nicht. Wie ist das aufgebaut. Normalerweise habe ich select spaltenname [, spaltenname][,spaltenname]... from .... Wie muss ich das verstehen was jetzt anstelle der Spaltennamen steht? du kannst in queries ja anstelle von spaltennamen aus realen tabellen so ziemlich alles verwenden, was es gibt: funktionen, proceduren, strings, ausdrücke. du kannst dort mit zahlen und datumsangaben rechnen, etc. was bedeuten die || ? die || konkatenieren strings (also hängen diese zusammen). ein select 'hallo' || 'echen' from dual; ergibt ERGEBNIS halloechen Kann ich auf Internet etwas finden, wie ich solche Anweisungen schreiben kann? meine empfehlung: http://orafaq.com/ und von dort aus weitersurfen. oder mal bei oracle OTN reinschauen. dort liegen auch alle manuals. s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
orac Geschrieben 19. September 2006 Autor Teilen Geschrieben 19. September 2006 ok, vielen Dank. Dann werd ich mal schlau machen... Gruesse, Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.