Konfigurieren von Oracle 11g zu starten sqlplus?
Auf einem RedHat 6-server, einen Drittanbieter-Anwendung erfordert root-Rechte, um zu laufen, und braucht Zugang zu sqlplus. Ich habe eine laufende Datenbank, ich kann laufen, sqlplus als Benutzer "oracle". Wenn Sie als root eingeloggt, 'sqlplus usr/pwd@dbname' wie erwartet funktioniert. Das Problem ist, dass dieser agent ausführen muss, um sqlplus ohne Parameter und es gibt immer ORA-12546: TNS:permission denied.
Ich habe gelesen, ein Dutzend mal, dass die Aktivierung der root zu starten, ist Oracle ein Sicherheits-Problem, aber ich habe wirklich keine andere Wahl.
Läuft Oracle 11.2.0.1.0.
Jede Hilfe wird sehr geschätzt, da habe ich gegoogelt für 2 Tage ohne Erfolg.
ORACLE_HOME
, TNS_ADMIN
, ORACLE_SID
...) richtig eingestellt, oder ich denke, dass Sie sehen würden, andere Fehler. Sind Sie mit dem voll-Oracle installieren, und ist es etwas seltsam über die Berechtigungen in Ihrem ORACLE_HOME
? Ich würde vorschlagen, Sie haben eine separate installation des instant-client für root
zu verwenden, um so viel Trennung wie möglich - ist das machbar?Ich habe genau die gleichen Umgebungsvariable für root als für den oracle-Benutzer. Ja, es ist ein standard-Enterprise-Oracle-installation. Ich habe die Datei Berechtigungen und den Besitz mit einem anderen server läuft als erwartet, aber konnte nicht finden einen Unterschied und, so vermute ich hängt es mit einer Konfiguration irgendwo. Leider ist die Installation einer separaten client für root ist nicht möglich in diesem Zusammenhang. Ich glaube, das ist ein problem mit dem listener-Konfiguration, viel mehr, als die Datenbank. Vielen Dank für Ihre Ermittlungen so weit.
Ja, ich bin nur starten von sqlplus und verlassen Sie sich auf ORACLE_SID. Ich habe nicht konfiguriert, jede Brieftasche, vielleicht ist es eine Standard-config? Das system funktioniert Recht ist mit Oracle 11.1.0.6 eher als 11.2.0.1 auf dem anderen. TWO_TASK ist nicht festgelegt, auf beiden Systemen. Konnte keine Unterschied im Vergleich dirs auf beiden Systemen. Ich habe nicht gesagt, ihn aber noch nicht vom user root 'tnsping Datenbankname' Antworten richtig! Ich bin verwirrt!
Der einzige Weg, ich weiß, für diese zu passieren - für remote-verbindungen arbeiten (
tnsping dbname
und anschließen @dname
), aber für lokale verbindungen zu bekommen, dass Fehler durch Berechtigungen; insbesondere dann, wenn $ORACLE_HOME/bin/oracle
ist nicht Welt-executable. Aber das ist eines der ersten Dinge, die Google sagt, und Sie habe traurig die Berechtigungen übereinstimmen, eine funktionierende server. Können Sie bestätigen, dass bestimmte fahne? Und ist root
im dba
Gruppe auf dem server arbeiten?InformationsquelleAutor PierreVn | 2014-02-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus der Dokumentation, ORA_12546 ist:
Das ist nicht ganz hilfreich, aber in verschiedenen forum und blog-posts (zu viele um Sie alle zu verlinken, Googeln nach dem Fehler, zeigt eine Vielzahl von ähnlichen Rat) erwähnen, die Berechtigungen auf einen bestimmten Teil der installation
$ORACLE_HOME/bin/oracle
, das ist ein entscheidender und zentraler Bestandteil der meisten Dienstleistungen.Normalerweise die Berechtigungen auf die Datei wäre
-rws-r-s--x
mit der Datei im Besitz vonoracle:dba
, und dieser Fehler kann auftreten, wenn das word-writable-flag - die Letztex
Muster - nicht festgelegt ist. Jemand, der in derdba
Gruppe noch in der Lage sein, um Sie auszuführen, aber außerhalb nicht.Ihre Zuhörer scheint in Ordnung zu sein, wie Sie können eine Remote-Verbindung, indem Sie
@dbname
im connect-string. Der listener läuft alsoracle
(in der Regel, könntegrid
mit HA, RAC oder ASM), so ist es in derdba
Gruppe und kann fröhlich die hand-off-verbindungen zu einer Instanz von deroracle
ausführbare Datei.Wenn Sie eine Verbindung ohne den Umweg über das Hörer, Sie werden in der Lage zum ausführen dieser Datei selbst. Es scheint, dass
root
nicht ausführen (oder ggf. eine andere Datei, aber diese ist in der Regel die Täter, offenbar), was bedeutet, die world-writable bit ist in der Tat nicht festgelegt.Soweit ich sehen kann, haben Sie drei Möglichkeiten:
chmod o+x $ORACLE_HOME/bin/oracle
; aber eröffnet die Berechtigungen für alle, und vermutlich habe Sie nur einen Grund;root
zu dendba
Gruppe, überusermod
oder in der/etc/group
; die potenziell schwächt auch die Sicherheit;@dbname
in der connect-string, indemexport TWO_TASK=dbname
zu denroot
Umgebung.Sagte Sie, Sie habe nicht dieses problem auf einem anderen server, und dass die Datei-Berechtigungen sind die gleichen; in dem Fall
root
sein könnten, diedba
Gruppe auf das Feld. Aber ich denke die Dritte option scheint die einfachste und sicherste. Es ist eine vierte option, nehme ich an, die Installation eines separaten instant client, aber dafür müsste manTWO_TASK
sowieso und gehen über SQL*Net, und Sie haben bereits entschieden, dass aus.Werde ich nicht weiter eingehen, ob es eine gute Idee, um
sqlplus
(oder in der Tat die Anwendung, die es braucht) alsroot
, sondern nur erwähnen, dass Sie würde haben könnten ein Skript oder eine Funktion, die aufgerufen wirdsqlplus
, dass die Schalter auf einem weniger privilegierten Konto übersu
zum ausführen der realen ausführbar ist, und dass möglicherweise transparent für die Anwendung. Es sei denn, Sie wechseln auf dieoracle
Konto aber, das ist auch keine gute Idee, Sie hätte die gleiche Berechtigung Problem und Optionen.froh, dass es funktioniert; evtl. ein Verzeichnis in dem Pfad, der macht
$ORACLE_HOME/bin
Berechtigungen 750 (drwx-rx---
), aber nicht sicher, ob Sie bekommen genau diesen Fehler. Auch möglich, dass es eine access control list. Alles ein bisschen irrelevant, wieTWO_TASK
funktioniert, aber immer interessant zu wissen, was falsch ist, nicht nur, wie Sie es umgehen.Ich denke, ich Verdiene ein paar Seitenhiebe: ich habe überprüfen Sie die Berechtigungen für sub-Verzeichnisse außer /home/oracle (Oracle installiert unter), die 700! Ich chmod-ed es auf 755, entfernt die TWO_TASK in die shell-Sitzung, versuchte sqlplus wieder und ratet mal: es funktioniert auch. Schande über mich!
leicht getan. Vielen Dank für das update *8-)
InformationsquelleAutor Alex Poole