|
Arbeiten mit dem Enterprise Manager Command Line Interface (EMCLI) - Teil 1
von Ralf Durben, ORACLE Deutschland GmbH
Oracle Enterprise Grid Control ist eine umfassende grafische Verwaltungsumgebung nicht nur für Oracle Produkte. In einer zentralen, rein webbasierten Konsole bekommen Sie einen Überblick über alle Zielsysteme und können diese optimal verwalten. Desweiteren steht Ihnen unter anderem ein vollwertiges Jobsystem zur Verfügung.
Auch wenn die meisten Verwaltungsaufgaben in einem grafischen Tool bewältigt werden wollen, gibt es dennoch Aufgabenbereiche, in denen ein zeilenbasiertes Arbeiten mit Skripten sinnvoll ist. Für derartige Aufgaben gibt es das Enterprise Manager Command Line Interface (EMCLI), welches integraler Bestandteil einer Grid Control Installation ist.
In einer kleinen Reihe von Tipps möchte ich Ihnen ausgewählte Funktionalitäten des EMCLI vorstellen. In diesem Tipp zeige ich Ihnen, wie Sie mit dem EMCLI
gespeicherte Credentials und Administratoren in Grid Control verwalten können. Gerade in größeren Umgebungen stellt sich immer wieder die Frage, wie Änderungen von Datenbankpasswörtern in Grid Control berücksichtigt werden können, ohne großen Aufwand zu erzeugen. Schließlich speichern die EM-Benutzer Informationen zum Anmelden an die jeweiligen Zieldatenbanken in Grid Control ab, um diese nicht ständig eingeben zu müssen.
Allgemeines Arbeiten mit dem EMCLI
Zunächst jedoch zeige ich Ihnen, wie der EMCLI gestartet wird. Das Executable finden Sie im Verzeichnis $OMS_HOME/bin ($OMS_HOME entspricht dem Verzeichnis, in das der OMS installiert wurde). Starten Sie EMCLI mit
bekommen sie eine Ausgabe aller möglichen Kommandos, die auch "Verb" genannt werden. Hier ein Auszug:
Da mit EMCLI Aktionen durchgeführt werden, die in der grafischen Umgebung ein Anmelden als EM-Benutzer erfordern, ist eine Anmeldung auch in EMCLI erforderlich. Bevor Sie also mit EMCLI weitere Aktionen durchführen können melden Sie sich erst einmal an mit
also zum Beispiel mit
Sie werden dann zur interaktiven Eingabe Ihres Passwortes aufgefordert. Nach erfolgreicher Verifizierung des Passwortes erhalten Sie einen normalen Betriebssystem-Prompt, sind aber in einer laufenden Sitzung des EMCLI.
Bei einer Integration in Skripte könnnen Sie das Passwort auch in der Kommandozeile Übergeben, also zum Beispiel
Aus Sicherheitsgründen empfiehlt sich dieses aber nicht. Besser ist es zum Beispiel unter UNIX die Eingabe des Passwortes in einem Skript wie folgt zu realisieren:
Wenn Sie Ihre Aktionen in EMCLI beendet haben, sollten Sie sich auch explizit aus EMCLI abmelden mit
Ändern gespeicherter Credentials
Aus Sicherheitsgründen sollten Passwörter von Zielsystemen in regelmäßigen Abständen geändert werden. Diese Änderungen betreffen dann auch die in dem Grid Control Repository gespeicherten Credentials, die entsprechend angepasst werden müssen. In einer Grid Control Umgebung mit einer Vielzahl von Zielsystemen ist dieses in der grafischen Umgebung eine mühsame Aktion. Einfacher und wesentlich effizienter ist eine Anpassung mit EMCLI.
Nachdem das Passwort im Zielsystem verändert wurde, können Sie dieses mit dem Kommando "update_password" in Grid Control eintragen. Genauer formuliert: Das neue Passwort wird in einer Tabelle im Grid Control Repository gespeichert. Diese Tabelle ist derart generisch definiert, dass für die Credentials verschiedener Zieltypen verschiedene Attribute verwendet werden. Dieses ist in EMCLI zu berücksichtigen, was die Nutzung von "update_password" auf den ersten Blick komplizierter erscheinen lässt, als es wirklich ist.
Die Änderung des Passworts eines Datenbankbenutzers wird wie folgt durchgeführt (hier wird das Passwort des DB Benutzers SYSTEM von "welcome2" auf "welcome1" gesetzt):
Gültige Werte für die Parameter "target_type" und "credential_type", sowie der Spaltennamen, die in "key_column" und "non_key_column" angegeben werden, ermitteln Sie ganz einfach mit dem Kommando
Das Ändern von Betriebssystem-Credentials für den Server erfolgt also wie folgt:
In Grid Control werden Betriebssystem-Credentials aber in verschiedenen Zusammenhängen verwendet:
- Die Credentials auf "host"-Ebene betreffen den Zugriff in Grid Control Über die Host-Homepage.
- Host-Credentials auf Datenbank-Ebene betreffen Jobs, die vom Management Agent ausgeführt werden und einen Zugriff auf das Betriebssystem erfordern.
Im zweiten Fall passen Sie das neue Passwort an, indem Sie den Target-Typ "oracle_database" verwenden:
Im obigen Beispiel werden sowohl das alte als auch das neue Passwort auf Kommandozeilenebene angegeben. Dieses ist nicht gerade sicher und daher nicht zu empfehlen. Aus diesem Grund können Sie auch eine Datei erstellen, in der das Passwort steht. Dazu geben sie im Parameter "non_key_column" einen Bezeichner an, der dann im Parameter "input_file" mit einer Datei verknüpft wird. Diese Datei enthält dann den Wert des Parameters.
In diesem Tipp zeige ich Ihnen nur Beispiele für die Zieltypen "Oracle Datenbank" und "Host". Die Nutzung dieses Kommandos für alle anderen Zieltypen ist aber einfach ableitbar und die notwendigen Werte für die Parameter lassen sich leicht durch das oben beschriebene Kommando "show_credential_type_info" ermitteln.
Neben dem Ändern von Credentials können Sie gespeicherte Credentials auch entfernen. Dieses ist zum Beispiel dann sinnvoll, wenn ein Administrator den Aufgabenbereich wechselt und nun für andere Zielsysteme zuständig ist. Ein Ändern der Passwörter auf vorsätzlich falsche Werte ist in diesen Fällen nur eine suboptimale Lösung. Sie können Credentials leicht entfernen mit
Die Angabe des Zielsystems ist optional. Wenn hier nichts angegeben wird, werden alle Credentials zu diesen Credential-Set entfernt. Wenn kein EM-Benutzer angegeben wird, werden nur die Credentials des in EMCLI angemeldeten Benutzers gelöscht. Mit der Angabe eines EM-Benutzernamens löschen Sie die Credentials eines anderen EM-Benutzers - dieses ist natürlich nur als Superuser möglich.
Bitte beachten Sie auch den Unterschied zwischen den Parametern "credential_type" bei dem Update-Kommando und "credential_set" bei dem Clear-Kommando. Den jeweils gültigen Wert für "credential_set" erfahren Sie mit
Das Erstellen neuer Credentials
Bislang ging es nur um das Verändern bereits bestehender Credentials. Das Erstellen neuer Credentials ist mit einem Update-Kommando nicht möglich. Hierzu gibt es das Kommando "set_credential":
Die verfügbaren Credential Sets können Sie wie oben beschrieben wieder mit dem Kommando "show_credential_set_info" ermitteln. Wichtig ist nun, dass alle Spalten eines Credential Sets gefüllt werden müssen. Bei Datenbank-Credentials ist neben Benutzername und Passwort auch eine Rolle anzugeben, welche aber nichts mit Datenbankrollen gemein hat. Vielmehr sind hier die Rollen "sysdba", "sysoper" bzw. "normal" gemeint.
Wie beim Löschen von Credentials erstellen Sie mit "set_credentials" per Default neue Credentials für den in EMCLI angemeldeten Benutzer. Mit dem Parameter "user" können Sie als EM-Superuser auch Credentials für andere EM-Benutzer erstellen.
Das Erstellen neuer EM Benutzer
Auch das Erstellen von EM-Benutzern möchte man eventuell per Skript realisieren, vor allem wenn dieses im Zuge eines Identity Management Workflows geschehen soll. Voraussetzung hierfür ist natürlich, dass Sie in EMCLI als EM-Superuser angemeldet sind.
Einen neuen EM-Superuser erstellen Sie mit
Einen Nicht-Superuser erstellen Sie unter Angabe der speziell für den neuen Benutzer gültigen Privilegien. Dabei gibt es in Grid Control sowohl System- als auch Objektprivilegen. Die Systemprivilegien beziehen sich nicht auf spezielle Objekte, sondern auf das gesamte System:
- CREATE_ANY_ROLE
- CREATE_ANY_PRIVILEGE
- MANAGE_CREDENTIAL_GROUP
- CREATE_TARGET
- DELETE_ANY_TARGET
- VIEW_ANY_TARGET
- USE_ANY_BEACON
- EM_MONITOR
- SUPER_USER
Objektprivilegien sind
- VIEW_TARGET
- OPERATOR_TARGET
- MAINTAIN_TARGET
- CLONE_FROM_TARGET
- FULL_TARGET
- CREATE_TARGET_IN_GROUP
und diese müssen zusammen mit dem Namen und Typ des Zielsystems, für das dieses Privileg vergeben wird, spezifiziert werden.
Zusätzlich gibt es noch Privilegien für Jobs
die mit der jeweiligen Job-ID vergeben werden.
Ein Beispiel zur Erstellung eines Nicht-Superusers ist dann
Weiterhin können Sie auch noch Angaben hinsichtlich Rolle und Erreichbarkeit machen:
Diesen EM-Benuzer löschen Sie mit
Hinweis auf Handbuch:
Zum Enterprise Manager Command Line Interface gibt es auch ein Handbuch, in dem Sie weitere Funktionalitäten finden.
Lizenzhinweis:
Lizenzhinweis: EMCLI als Tool ist Bestandteil der Basisfunktionalität von Grid Control. Die in EMCLI zur Verfügung stehenden Funktionalitäten sind teilweise Bestandteil von zusätzlich lizenzpflichtigen Packs. Die in diesem Tipp beschriebenen Funktionalitäten sind aber Basisfunktionalität, für die Sie keine zusätzlichen Lizenzen benötigen.
Versionshinweis:
Die in diesem Tipp angegebene Syntax bezieht sich auf die Version von Grid Control 10.2.0.5.
Zurück zur Community-Seite
|