Public Database as a Service - Verbindungsmöglichkeiten
von Manuel Hoßfeld, Oracle Deutschland B.V. & Co. KG |
 |
[Update Hinweis: Die in diesem Artikel gezeigten Screenshots zeigen eine ältere Version der Oberfläche - das Grundprinzip hat sich jedoch nicht geändert.]
Im ersten Teil dieses Artikels haben Sie gelesen, wie Sie sich eine Instanz des "Database Cloud Service" (DBCS) in der "Oracle Cloud" erzeugen können und welche Voraussetzungen Sie dafür erfüllen müssen.
Verbindung über Oracle SQL Developer
Wie bereits im ersten Artikel gezeigt, können Sie durch Klick auf den Namen Ihrer soeben erzeugten DBCS Instanz eine Detailseite erreichen. Auf dieser sehen sie u.a. deren IP-Adresse und die Connect-Informationen der darin laufenden Datenbank.
Grundsätzlich könnten Sie nun sofort mit der Nutzung der Datenbank beginnen. Da aber, wie im ersten Artikel erwähnt, aus Sicherheitsgründen zunächst nur SSH freigeschaltet ist, kann eine Verbindung zur Datenbank also nur über einen SSH-Tunnel oder aber nach Freischaltung des SQL-Listener Ports erfolgen. Am einfachsten funktioniert die Nutzung des kostenfreien Werkzeugs "Oracle SQL Developer", da dieser die Möglichkeit zur Nutzung von SSH Tunneln bereits eingebaut hat. Gehen Sie wie folgt vor:
Blenden Sie zunächst mit dem Menü "Ansicht -> SSH" den Bereich "SSH-Hosts" in der Oberfläche ein - sofern noch nicht geschehen. Dort wählen Sie dann mittels Rechtsklick auf den obersten Knoten "SSH-Hosts" die Option "neuer SSH Host..." und vergeben einen beliebigen Namen. Unter "Host" tragen Sie die IP-Adresse Ihrer DBCS Instanz ein, der Benutzername ist "oracle". Kreuzen Sie "Schlüsseldatei verwenden" an und wählen Ihre im Rahmen der Vorbereitung (im ersten Artikel) erzeugte Private Key Datei im OpenSSH-Format aus. Machen Sie außerdem einen Haken bei "Add a Local Port Forward". Hier vergeben Sie einen Namen der das Ziel der Verbindung erkennen lässt (z.B. den Datenbanknamen). Die restlichen Einstellungen belassen Sie auf ihren Standardwerten.

Beim Anlegen der eigentlichen Verbindung (Datenbank Connection) über das Panel liks oben im SQL Developer geben Sie dann zuerst wie gewohnt den Datenbankbenutzer sowie dessen Passwort an. Im Falle von "sys" entspricht das Passwort dem "Master Passwort", welches Sie bei der Erstellung der DBCS-Instanz angegeben haben. Anschließend referenzieren Sie den SSH-Tunnel, in dem Sie "Verbindungstyp" auf "SSH" setzen und in dem dadurch erscheinenden Auswahlknopf den entsprechenden "Port Forward" auswählen, den Sie zuvor erzeugt haben.
[Anmerkung: Sollten Sie die oben genannten Menüpunkte nicht finden können, verwenden Sie wahrscheinlich noch eine ältere Version von Oracle SQL Developer - die Vorgehensweise für SSH Tunneling hat sich von 4.0 auf 4.1 etwas geändert.]
Wenn Sie die eben erzeugte Connection im SQL Developer abgespeichert haben, können Sie mit dieser jederzeit über eine sichere SSH-Verbindung mit Ihrer DBCS Datenbank arbeiten. Beachten Sie beim Nutzen der Verbindung, dass Sie von SQL Developer nach der Passphrase Ihres SSH-Keys gefragt werden (und nicht etwa nach dem Passwort des Datenbanknutzers, denn das haben Sie ja in der Connection hinterlegt.)
Direkter Zugriff über eine SSH Konsolensitzung
Grundsätzlich sind alle DBCS-Instanzen direkt nach deren Provisionierung so konfiguriert, dass ein Zugriff darauf ausschließlich über SSH erfolgen kann. Wie man trotzdem mit dem kostenfreien SQL Developer eine Datenbankverbindung aufbauen kann war Inhalt eines entsprechenden Abschnitts am Ende des ersten Teils dieses Artikels.
Ohne Verwendung eines SSH Tunnels, wie er zum Beispiel von SQL Developer bereitgestellt wird, besteht die direkteste Variante der Datenbanknutzung darin, sich mittels eines beliebigen SSH-Clients (unter Windows zum Beispiel "PuTTY") für den User "oracle" eine Konsolensitzung zu eröffnen und darin dann SQL*Plus zu benutzen. Sie benötigen dazu die Public IP-Adresse, welche Sie auf der Detailseite Ihrer DBCS-Instanz finden. Beachten Sie dabei, dass
Sie in Ihrem SSH Client den Private Key angeben müssen, der zu dem Public Key gehört, welchen Sie beim "create instance" Wizard angegeben hatten. In PuTTY finden Sie die entsprechende Stelle links im Konfigurationsbaum unter dem Pfad "Connection -> SSH -> Auth".
Beim Connect erhalten Sie dann einen Prompt nach der Passphrase, welche Sie beim Erzeugen des Keys vergeben haben. Es handelt sich dabei also NICHT etwa um ein Passwort des "oracle" Users in Ihrer DBCS Instanz / VM. (Genauer: Die User in der VM haben überhaupt keine Passwörter und können ausschließlich mit Ihrem SSH Key verwendet werden.)
Neben dem gerade verwendeten Nutzer "oracle" gibt es noch einen weiteren Betriebssystem User, mit dem Sie sich einloggen können: Es handelt sich um den User "opc" - dieser wird für administrative Zwecke verwendet und kann mittels "sudo" auch root-Rechte in der Linux VM erlangen. Um einen einzelnen Befehl / ein Skript oder ähnliches als Benutzer root auszuführen, loggen Sie sich, wie gerade beschrieben, mit Ihrem Private Key auf die Public IP Ihrer DBCS Instanz als "opc" ein und geben dann ein:
Für eine komplette Shell mit root-Rechen geben Sie ein:
Datenbank-Connect mittels beliebiger Clients
Wenn Sie weder SQL Developer (und dessen SSH Tunneling) noch eine SQL*Plus Kommandozeilensitzung zur Interaktion mit der Datenbank verwenden wollen, muss für den Zugriff von außen über SQL*Net der entsprechende Port erst geöffnet werden.
Dies erreichen Sie wie folgt:
Wechseln Sie in der "My Services" Web-Konsole auf den Bereich "Compute Cloud Service", in dem Sie den entsprechenden Eintrag in dem Popup-Menü wählen, welches nach Klick auf die drei Striche neben dem Oracle Logo erscheint:

In der Compute Cloud Console wechseln Sie oben in der Titelleiste auf den Tab "Network". Es öffnet sich eine Liste aller sogenannten "Security Rules":

Wie Sie sehen werden ist bereits eine Security Rule mit der Bezeichnung "ora_p2_dblistener" vorkonfiguriert, welche den SQL*Net Zugriff auf Ihre DBCS Instanz regelt. Erkennbar an dem rot hinterlegten Kreuz im Symbol dieser Zugriffsregel ist sie allerdings deaktiviert - das heisst der Zugriff ist nicht erlaubt. Klicken Sie nun auf das Aktions-Icon (im Screenshot mit einem roten Pfeil markiert) und wählen "Update". In dem dann erscheinenden Dialog müssen Sie lediglich das Attribut "Status" von "Disabled" auf "Enabled" setzen, und die Regel ist aktiviert. Ab diesem Moment können Sie mit beliebigen SQL*Net Clients (über Port 1521) auf Ihre Datenbank zugreifen. Den für die Datenbankverbindung benötigten Connect-String entnehmen Sie bitte der Detailseite Ihrer DBCS Instanz. Beachten Sie allerdings, dass dieser in der Regel nicht wörtlich übernommen werden kann, da der Name Ihrer DBCS Instanz normalerweise nicht über DNS auflösbar ist. Ersetzen Sie den Namen also einfach durch die Public IP-Adresse.
Hinweis: Aus Sicherheitsgründen ist es empfehlenswert, den Zugriff auf diesen soeben freigeschalteten Port nicht wie hier im Beispiel "global" zu ermöglichen, sondern nur für bestimmte vertrauenswürdige IP-Adressen. Wie Sie dies bewerkstelligen, ist in der Dokumenation beschrieben.
Mit der gleichen Vorgehensweise können Sie auch die anderen per Default gesperrten Ports öffnen (z.B. mit der Regel ora_p2_dbexpress für den bei einer 12c Datenbank mitinstallierten Enterprise Manager Database Express)
Wie Sie in diesem und dem ersten Teil des Artikels sehen konnten, gibt es bei der Einrichtung und Nutzung von Datenbanken im Oracle Database Cloud Service bei jedem Schritt sowohl interne als auch externe Werkzeuge, die Datenbankadministratoren & -Entwicklern schnell zu einer flexiblen und leistungsfähigen Umgebung verhelfen.
Weitere Informationen zum Thema:
Zurück zum Anfang des Artikels
Zurück zur Community-Seite |