Autor Beitrag
lila3
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Di 05.12.06 13:56 
Hallo,

ich möchte über ein Delphi.NET-Programm auf eine Oracle 10g Datenbank via ADO zugreifen und habe Probleme bei der Definition des Connection-Strings.
Um die gewünschten Operationen durchzuführen, benötige ich sys oder system Berechtigungen.
Wenn ich den Benutzer sys angebe, bekomme ich die Fehlermeldung:
"ORA-28009: Anmeldung als SYS muss Anmeldung als SYSDBA oder SYSOPER sein"

Da hat er natürlich auch recht, aber wie in aller Welt bekomme ich das 'AS SYSDBA' in den Connection-String?

conn := OleDbConnection.Create;
conn.ConnectionString := 'Provider="MSDAORA.1";User ID=sys;Data Source=alias;Persist Security Info=True;Password=password';


Ich habe es an allen möglichen Stellen probiert einzufügen, aber die richtige Formulierung habe ich nicht gefunden. Kann mir da jemand weiterhelfen?
raiguen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 374

WIN 2000prof, WIN XP prof
D7EP, MSSQL, ABSDB
BeitragVerfasst: Di 05.12.06 16:56 
Moin :-)
ausblenden Delphi-Quelltext
1:
2:
conn := OleDbConnection.Create; 
conn.ConnectionString := 'Provider="MSDAORA.1";User ID=SYSDBA;Data Source=alias;Persist Security Info=True;Password=password';

evtl so? ggf. muss SYSDBA noch in "" gesetzt werden...
lila3 Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mi 06.12.06 11:36 
Ja genau, so hatte ich es probiert, mit und ohne Anführungsstriche. Aber ich bekomme immer wieder die Meldung, dass der Benutzername/Kennwort nicht richtig ist. Ein anderes Kennwort als für sys und system gibt es ja eigentlich auch nicht, oder?
raiguen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 374

WIN 2000prof, WIN XP prof
D7EP, MSSQL, ABSDB
BeitragVerfasst: Mi 06.12.06 12:59 
user profile iconlila3 hat folgendes geschrieben:
Ja genau, so hatte ich es probiert, mit und ohne Anführungsstriche. Aber ich bekomme immer wieder die Meldung, dass der Benutzername/Kennwort nicht richtig ist. Ein anderes Kennwort als für sys und system gibt es ja eigentlich auch nicht, oder?

Ähm, das Passwort muss natürlich das 'richtige' Passwort sein, um auf 'deine' OracleDB zu gelangen. Will sagen:
DU musst natürlich in diesem Teil des ConnectionString -> Password=password auch das Zugangspasswort eintragen ;) password ist durch dein bzw das Zugangspasswort zu ersetzen:
ausblenden Quelltext
1:
2:
3:
4:
//--entweder 'einfache' Hochkommas
... Password='istGeheim' ...
//--oder doppelte Anführungszeichen
... Password="istGeheim" ...
;)
lila3 Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mi 06.12.06 13:58 
Ja, das war mir schon klar, dass ich mein Passwort dort eintragen muss und nicht das Wort 'password', aber es funktioniert weder mit einfachen noch mit doppelten Anführungszeichen, zumindest bei SYSDBA mit dem Passwort von sys/system.
Melde ich mich mit meinem persönlichen User an, funktioniert es einwandfrei und sogar mit dem Benutzer 'system', nur ausgerechnet 'sys' benötigt eine Anmeldung 'as sysdba', und das krieg' ich im ConnectionString nicht untergebracht. 'SYSDBA' ist ja eigentlich auch kein User, sondern eher ein Status. Deswegen wundert es mich eigentlich nicht, dass er ihn nicht als gültigen Benutzernamen akzeptiert. Aber war ja trotzdem einen Versuch wert. Manchmal ist es ja doch anders als man denkt. Ohne Anmeldung als sys kann ich in meinem Programm kein 'TRUNCATE TABLE sys.aud$' durchführen, nicht einmal 'system' darf das. Und da mir eine DELETE nicht reicht, komme ich immer wieder auf diesen Punkt zurück.