Frage

Oracle hat dieses Konzept der damit Datenbankbenutzer durch das Betriebssystem Benutzer identifiziert werden, die das Programm ausgeführt wird, das auf Oracle verbindet. Siehe hier .

Auf diese Weise können Sie tun, als dieser Benutzer auf einem UNIX-Rechner beispielsweise ein Befehl wie:

sqlplus /

Ich bin versucht, ein Java-Programm für Oracle 10.2, die ohne Benutzername oder Passwort einer Verbindung zu schreiben. Die offensichtliche Wahl der url:

jdbc:oracle:thin:/@localhost:1521:MYDBSID

nicht funktioniert, einen Fehler geben (Leider habe ich den Fehler nicht verfügbar jetzt).

Ich habe viele andere Formen versucht, dies auch zu tun, aber ohne Glück.

Hat jemand irgendwelche Vorschläge, wie ich ein Java-Programm, um Oracle mit den OS-Identifizierungsverfahren herstellen kann?

War es hilfreich?

Lösung

Der JDBC-Thin-Treiber ist eine 100% reine Java-Implementierung, die die benötigten Informationen aus dem Betriebssystem nicht sammeln kann.

Der JDBC OCI-Treiber kann dies tun! Verwenden Sie jdbc:oracle:oci8:/@MYDBSID, wird es erforderlich, dass die Oracle-Treiber auf dem Computer installiert werden, kein Problem, wenn dies ein Server (und ist schneller zu booten und unterstützt viele mehr Funktionen als die Thin-Treiber)

Andere Tipps

Der JDBC-Treiber, die Oracle-Schiffe nicht die Fähigkeit haben, das Sammeln der OS-Benutzernamen und das Passwort aus der URL, dass Sie es schaffen. Nehmen wir an, es gibt 3rd-Party-JDBC-Treiber-Provider für Oracle, einer von ihnen könnte die Funktionalität zur Verfügung stellen, die Sie für Fragen. Sie sollten Google um.

Dank denen, die beantwortet. Wir haben mit dem OCI-Treiber gegangen.

Ich habe Dokumentation dafür, dass Oracle 11g funktioniert Unterstützung OS-Benutzerauthentifizierung über die Thin-Treiber aber:

http://www.orindasoft.com /public/Oracle_JDBC_JavaDoc/javadoc1110/oracle/jdbc/OracleConnection.html#CONNECTION_PROPERTY_THIN_VSESSION_OSUSER

Ich habe keine 11g Setup haben diese auf testen, so kann ich nicht sicher sein, das funktioniert.

Wenn Sie den Zugriff auf Oracle von einem J2EE-Anwendungsserver, Sie könnten ein ähnliches Ziel erreichen durch JNDI mit einer Datenquelle zu erhalten.

Der 11g Thin-Treiber kann mit Kerberos-Authentifizierung verbinden.

Siehe Verbinden mit einer Oracle-Datenbank mit Kerberos

versuchen folgende jdbc: oracle: thin: Benutzername / Passwort @ localhost: 1521: MYDBSID

Sie müssen die Kontoinformationen angeben

sqlplus / as sysdba auf einer Unix-Maschine, die das Betriebssystem autentication durch

OS Authentifizierungsunterstützung in dem JDBC-Thin-Treiber wurde in 11g hinzugefügt (Sie die JDBC-Thin-Treiber von 11.2.0.4 auf OTN herunterladen können).

Beachten Sie, dass Remote-OS-Authentifizierung auf dem Server (über TCP), damit haben sonst wird es nur mit sqlplus arbeitet lokal mit IPC oder BEQ. In Ihrer Datei init.ora, fügen Sie diese:

REMOTE_OS_AUTHENT = TRUE

Dann, wenn Sie Benutzer „osuserdemo“ auf dem Client-Rechner ist, einen Datenbankbenutzer wie folgt erstellen und starten Sie den DB:

 CREATE USER OSUSERDEMO IDENTIFIED EXTERNALLY;
 GRANT CONNECT,CREATE SESSION,RESOURCE TO OSUSERDEMO; 

Und die JDBC-Thin-Treiber sollten ohne Benutzername oder Passwort verbinden können.

Es ist erwähnenswert, dass diese Funktion - betrachtet als sehr ungesichert -. In 12c de Gestützte wurde

jdbc:oracle:oci:@ arbeitet mit ojdbc6.jar und Oracle 11g2

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top