
Das IT-Magazin der ORDIX AG mit Fachbeiträgen zu Datenbanken, Unix und Java/XML.
Nach dem Starten des OID kann im Verzeichnisbaum eine Domänenstruktur aufgebaut werden, ähnlich wie sie in der tnsnames.ora oder im Names Server definiert wurde. Hierfür kann der Oracle Internet Directory Manager (oidadmin) genutzt werden. Mit diesem Tool ist es möglich, durch den kompletten Verzeichnisbaum zu navigieren und Einträge zu erstellen, zu modifizieren oder zu löschen.
Hierfür muss sich der Benutzer zunächst am Verzeichnisdienst anmelden. Der Administrator des Verzeichnisses ist der Benutzer "orcladmin" mit dem Standardpasswort "welcome". Da dieser selbst als Objekt im OID hinterlegt ist, muss bei der Anmeldung an das OID stets der Name des Objekts mit angeführtem Objektattribut (cn=orcladmin) angegeben werden (siehe Abbildung 1).
Abb. 1: Anmeldung am OID mit dem oidadmin.
Soll die Domäne ordix.de abgebildet werden, unter der später sämtliche Net Service Namen erstellt werden, so müssen Einträge von der Klasse domain erzeugt werden. Die Pflichtattribute, die für dieses Objekt belegt werden müssen, sind der "Distinguished Name" (DN) und der Name des Objekts selbst ["Domain Component", (DC)]. Hierbei gilt: Der "Distinguished Name" ist, wie zuvor schon beschrieben, der eindeutige Name im gesamten Verzeichnisbaum. Der Name des Objekts (DC) ist gleichzusetzen mit dem "Relative Distinguished Name".
In Abbildung 3a/b (aus Teil I in ORDIX News 2/2004) ist zu erkennen, wie die Objekte für das gewählte Beispiel angelegt werden, so dass die in Abbildung 2 dargestellte Struktur entsteht. Diese Schritte können für eine beliebige Anzahl von Domänen wiederholt werden, je nach gegebener Komplexität der Konfigurationsdatei tnsnames.ora bzw. der Einträge aus dem Names Server.
Abb. 2: oidadmin mit geöffnetem Verzeichnisbaum.
Unterhalb der Domänenstruktur ordix.de muss nun ein weiterer Oracle Context angelegt werden. Dies kann über den Net Configuration Assistant (netca) erfolgen. Der entsprechende Menüpunkt lautet "Konfiguration von Directory Verwendung". Anschließend ist auszuwählen, dass ein weiterer Oracle Context angelegt werden soll. Es sind die Benutzerdaten des OID Admins und der "Distinguished Name" einzugeben, unter dem der zweite Oracle Context erstellt wird.
Im Anschluss daran müssen nun die eigentlichen Einträge aus der tnsnames.ora abgebildet werden. Hierfür gibt es zwei Möglichkeiten: Entweder werden sämtliche Einträge unterhalb der erstellten Domänenstruktur mit Hilfe des Oracle Net Managers (netmgr) erstellt. Die zweite und etwas einfachere Variante ist, dass die bestehenden Einträge aus dem Names Server exportiert und direkt in das OID importiert werden.
Wir wollen an dieser Stelle nur die zweite Variante besprechen. Gerade in Bezug auf die Migration zu Oracle 10g, wo diese Technik eine wichtige Rolle spielen wird, da der Names Server in diesem Release nicht weiter zum Einsatz kommt.
Der in Abbildung 3 gezeigte Befehl ist aus dem "Names Control Utility" (namesctl) abzusetzen. Dadurch werden sofort alle Einträge aus dem Names Server exportiert und in das OID importiert.
Abb. 3: Export der Namen aus dem Names Server und Import in den OID.
Alternativ kann auch über die in Abbildung 4 gezeigte Syntax zunächst eine Datei im LDAPv3 LDIF Format erzeugt und ggf. editiert werden, um sie dann anschließend über ldapadd in das OID zu laden. Hierzu wird wieder per Kommando dump_ldap aus namesctl eine Datei erzeugt, um anschließend mit dem Programm ldapadd die Daten aus dieser Datei zu importieren.
Abb. 4: Clientseitige Modifikationen an der sqlnet.ora und Erstellen der ldap.ora.
Als Nächstes müssen die sqlnet.ora und die ldap.ora auf allen Clients erstellt bzw. angepasst werden. Abbildung 5 zeigt einen beispielhaften Aufbau dieser beiden Dateien, zu finden unter $ORACLE_HOME/network/admin.
Abb. 5: Inhalte der Konfigurationsdateien sqlnet.ora und ldap.ora.
Damit die Namensauflösung über das OID abläuft, muss das bei jedem Client in dessen sqlnet.ora über den Parameter NAMES.DIRECTORY_PATH definiert werden. Es ist hier durchaus möglich, weitere Werte aufzunehmen, wie auch im oben genannten Beispiel zu erkennen ist. Ist z. B. der OID nicht erreichbar, wird hier zusätzlich noch eine Namensauflösung über die tnsnames.ora durchgeführt.
In der ldap.ora wird hinterlegt, auf welchem Host und an welchem Port der OID erreichbar ist. Im Beispiel ist 389 der unverschlüsselte und 636 der SSL Port.
Der Default Admin Context ist vergleichbar mit dem Parameter names.default_domain aus der sqlnet.ora beim Einsatz des Names Servers. Hier wird hinterlegt, unterhalb welcher Domänenstruktur nach dem Net Service Namen gesucht wird, falls dieser bei der Anmeldung nicht vollqualifiziert angegeben wird (vgl. Verbindungsaufbau). Des Weiteren wird der TYP des Directories mit OID festgelegt.
Am Ende ist zu testen, ob der Name über das OID aufgelöst wird und eine Verbindung zur Instanz aufgebaut werden kann. Für den Test kann das Oracle Tool tnsping benutzt werden, dem ein Net Service Name übergeben wird. Tnsping gibt aus, mit welcher sqlnet.ora gearbeitet wird. Zusätzlich wird ausgegeben, ob und wie die Verbindung aufgebaut werden konnte.
Nach einem erfolgreichen Test (siehe Abbildung 6) kann anschließend ein Verbindungsaufbau vollqualifiziert über sqlplus max/max@ora1.ordix.de hergestellt werden. Falls in der ldap.ora der Parameter DEFAULT_ADMIN_CONTEXT gesetzt ist, kann auch auf die Angabe der Domäne verzichtet werden. Oracle sucht dann selbstständig an der entsprechenden Stelle im Verzeichnisbaum: sqlplus max/max@ora1
Abb. 6: Test mit dem Werkzeug tnsping, bei dem die Verbindung aufgebaut werden kann.
Bei fehlgeschlagenem Test (siehe Abbildung 7) sollten zunächst folgende Fragen überprüft werden:
Abb. 7: Test mit dem Werkzeug tnsping, bei dem keine Verbindung aufgebaut werden kann.
Obwohl das Aufsetzen des OID aufwändiger ist als die Einrichtung eines Oracle Names Servers, bietet das OID ein neues, breites Einsatzspektrum. Die zentrale Namensauflösung ist dabei nur eine Teilkomponente, wie Sie in unserem dritten Bericht in der nächsten ORDIX News Ausgabe lesen können. Dort wird die zentrale Benutzer- und Rollenverwaltung im Zusammenspiel mit dem OID gezeigt.
Michael Lindermann (info@ordix.de).