Arbeiten mit dem Enterprise Manager Command Line Interface (EMCLI) - Teil 3
von Ralf Durben, ORACLE Deutschland B.V. & Co. KG

Oracle Enterprise Grid Control bietet neben der grafischen Oberfläche auch ein Command Line Interface (emcli) an. In zwei früheren Tipps (Teil 1 und Teil 2) dieser kleinen Reihe wurden die allgemeine Benutzung (Aufruf und Anmeldung) sowie verschiedene Anwendungen beschrieben. In diesem Tipp möchte ich Ihnen zeigen, wie sie das Auditing von Grid Control einschalten und das Data Masking Pack mittels emcli nutzen können.

Zuvor aber noch eine Vorbemerkung zur allgemeinen Nutzung von EMCLI: Diese Kommandozeilen-Utility benötigt ein passendes Java Runtime Environment. In Grid Control 11g ist dazu die Java Version 1.6 erforderlich. Der Pfad der passenden Java Runtime Environment muss unter UNIX mit der Umgebungsvariablen JAVA_HOME gesetzt werden. Sie müssen sich jetzt aber nicht auf die Suche nach einem passenden Download begeben, denn die ist in der Installation des OMS enthalten. Sie müssen also nur folgendes setzen:

export JAVA_HOME="Homeverzeichnis des OMS"/jdk/jre
also zum Beispiel
export JAVA_HOME=/opt/oracle/product/mw/oms11g/jdk/jre
Einschalten des Grid Control Auditings
Grid Control kann verschiedene Aktionen auditieren. Dazu gehören zum Beispiel alle Anmeldevorgänge an Grid Control und der Zielsysteme. Aber auch viele andere Aktionen, wie zum Beispiel das Anlegen von EM Benutzern, Privilegienvergabe, Patching, Cloning, usw. können auditiert werden. Eine Liste von Operationen, die auditiert werden können Sie abfragen mit
cd $OMS_HOME/bin
./emcli show_operations_list
....................................                                            
Operation Name                                                                  
....................................                                                
    ADD_AGENT_REGISTRATION_PASSWORD                                                 
    AGENT_REGISTRATION_PASSWORD_USAGE
    AGENT_RESYNC
    APPLY_TEMPLATE
    AUDIT_EXPORT_SETTINGS
    AUDIT_SETTINGS
    CHANGE_PASSWORD
    CHANGE_PREFERRED_CREDENTIAL
    CREATE_PG_SCHED
    CREATE_ROLE
    CREATE_TEMPLATE
    CREATE_UDP
    CREATE_UDPG
    CREATE_USER
    DB_LOGIN
    DB_LOGOUT
    DB_RESTART
    DB_SHUTDOWN
    DB_START
    DELETE_AGENT_REGISTRATION_PASSWORD
    DELETE_JOB
    DELETE_PG_EVAL
    DELETE_PG_SCHED
    DELETE_ROLE
    DELETE_TEMPLATE
    DELETE_UDP
    DELETE_UDPG
    DELETE_USER
    EDIT_AGENT_REGISTRATION_PASSWORD
    EDIT_JOB
    EDIT_PG_SCHED
    EDIT_TEMPLATE
    EDIT_UDP
    EDIT_UDPG
    EVALUATE_UDP
    FILE_TRANSFER
    GET_FILE
    GRANT_JOB_PRIVILEGE
    GRANT_ROLE
    GRANT_SYSTEM_PRIVILEGE
    GRANT_TARGET_PRIVILEGE
    IMPORT_UDP
    JOB_OUTPUT
    LOGIN
    LOGOUT
    MODIFY_METRIC_SETTINGS
    MODIFY_POLICY_SETTINGS
    MODIFY_ROLE
    MODIFY_USER
    PUT_FILE
    REMOTE_OPERATION_JOB
    REMOVE_PRIVILEGE_DELEGATION_SETTING
    REPOSITORY_RESYNC
    REVOKE_JOB_PRIVILEGE
    REVOKE_ROLE
    REVOKE_SYSTEM_PRIVILEGE
    REVOKE_TARGET_PRIVILEGE
    SAVE_MONITORING_SETTINGS
    SET_PRIVILEGE_DELEGATION_SETTING
    SUBMIT_JOB
    SUSPEND_JOB



Spezielle Einstellungen dazu gibt es nicht, das Auditing kann ein- bzw. abgeschaltet werden. Das Einschalten des Auditings kann auf zwei Arten erfolgen:
  • EMCLI
  • PL/SQL
Einschalten des Auditings mit EMCLI

cd $OMS_HOME/bin
./emcli enable_audit


Das Auditing kann abgeschaltet werden mit
cd $OMS_HOME/bin
./emcli disable_audit


Einschalten des Auditings mit PL/SQL

Zum Ein- bzw. Abschalten des Auditings steht auch das PL/SQL Package MGMT_AUDIT_ADMIN zur Verfügung:
SQL> exec  mgmt_audit_admin.enable_audit;
SQL> commit;


Auswerten des Audits Logs

Als Superadministrator kann der Audit Log in der GUI von Grid Control ausgewertet werden über "Setup"->"Management Services and Repository". Ganz unten auf dieser Seite finden Sie den Link zu den Audit Daten.



Die Anzeige von Auditdaten sieht dann so aus:



Dabei ist auf diesem Screenshot nur die einfache Suche zu sehen. Mit einem Klick "Advanced Search" können Sie die Suche noch weiter verfeinern.





Nutzung von Data Masking mit EMCLI

Das Data Masking Pack dient der Anonymisierung von Daten. Dieses ist unter anderem zur Erzeugung von Testdaten wichtig, damit sensible Daten nicht über Test- und Entwicklungssysteme in die Hände von Unbefugten gelangen. Schließlich sind Test- und Entwicklungssysteme typischerweise nicht optimal geschützt und sind auch einem viel größerem Benutzerkreis zugänglich.

Dieses Management Pack zur Datenanonymisierung ist seit Grid Control 10.2.0.4 verfügbar und wurde bis Grid Control 10.2.0.5 nur in der GUI verwendet. Gerade bei immer wiederkehrenden Anonymisierungsvorgängen ist aber eine kommandozeilenbasierte Nutzung wünschenswert und ist mit Grid Control 11.1 und EMCLI nun auch möglich.

Dabei findet die Definition des Anonymisierungsvorgangs weiterhin in der GUI statt. Hierbei werden die zu anonymisierenden Tabellenspalten und die zu verwendenden Anonymisierungsmethoden festgelegt. Diese Definition kann in eine XML-Datei exportiert und später importiert werden. Theoretisch ist also auch eine Definition mittels Erstellung einer passenden XML-Datei denkbar.

Mit EMCLI können im Data Masking Pack folgende Aktionen durchgeführt werden:
  • Exportieren und Importieren von Anonymisierungsdefinitionen
  • Erzeugen von Skripten zur Ausführung der Anonymisierungsdefinitionen
  • Ausführung der Anonymisierungsskripte


Eine Auflistung der in EMCLI verfügbaren Kommandos für das Data Masking Pack können Sie ganz einfach mit
./emcli
erstellen. Sie bekommen eine Ausgabe aller möglichen Kommandos, die auch "Verb" genannt werden. Hier der Auszug für die Data Masking relevanten Kommandos:
  Masking Verbs
    export_masking_definition             -- Export masking definition to the specified path.
    generate_masking_script               -- Generate masking script and store in the repository
    import_masking_definition             -- Import masking definition from a specified file.
    list_masking_definitions              -- Get the list of masking definitions ,the associated target and their script status
    reassoc_masking_definition            -- Reassociate an existing masking definition to another database target.
    save_masking_script                   -- Save generated masking script to the specified path.
    submit_masking_job                    -- Submit a masking job ,display job id and execution id

Die Nutzung dieser Kommandos soll im Folgenden anhand eines einfachen Beispiels gezeigt werden. Zunächst listen Sie alle Anonymisierungsdefinitionen auf mit
./emcli list_masking_definitions
DEFINITION     TARGET  STATUS
MASKING_DEF_1  orcl    Script Not Generated
Im vorliegenden Fall gibt es also eine Anonymisierungsdefinition, für die aber noch kein ausführbares Skript vorliegt. Sie können diese Anonymisierungsdefinition exportieren mit
./emcli export_masking_definition 
        -definition_name="MASKING_DEF_1" 
        -file="/opt/oracle/product/mw/oms11g/bin/MASKING_DEF_1.xml"
Export masking definition completed successfully
Wichtig: Der angegebene Pfad für die Datei muss komplett (also nicht relativ) angegeben werden. Im vorliegenden Fall wurde diese Datei erzeugt.

Vor der Anonymisierung muss zu dieser Definition ein Skript erzeugt werden:
./emcli generate_masking_script -definition_name="MASKING_DEF_1"
Data masking script generation completed successfully.
Printing Impact Report...
Object Name  Object Type  Message Severity  Message Type  Message
USERS        TABLESPACE   INFORMATION       Plan          Sufficient free space in Tablespace USERS.
Starting Freespace with automatic extension: 33552MB.
Ending Freespace: 33552MB.
Lowest Freespace: 33552MB.
SCOTT        USER         INFORMATION       Plan          Sufficient tablespace quota for User SCOTT.  
Hierbei ist zu beachten, daß bei der Generierung des Skripts eine Datenbankverbindung zum Zielsystem aufgebaut wird. Dazu benötigt das Kommando die erforderlichen Credentials, die entweder in Grid Control als preferred Credentials gespeichert sind, oder per Parameter im Kommando GENERATE_MASKING_SCRIPT angegeben werden. Das erzeugte Skript ist im Repository gespeichert und kann mit SAVE_MASKING_SCRIPT in einer externen Datei gespeichert werden. Dabei muss die Extension der zu erzeugenden Datei mit ".sql" angegeben werden, denn jeder anderweitige Versuch erzeugt eine eindeutige Fehlermeldung:
./emcli save_masking_script -definition_name="MASKING_DEF_1" -file="/opt/oracle/product/mw/oms11g/bin/MASKING_DEF_1.script"         
Syntax Error: Invalid file. Only file names with .sql extension  allowed.  
Korrekt wäre hier also
./emcli save_masking_script -definition_name="MASKING_DEF_1" -file="/opt/oracle/product/mw/oms11g/bin/MASKING_DEF_1.sql"
Save masking script completed successfully. 
Die erzeugte Datei ist selbst bei diesem einfachen Beispiel zu lang, um sie hier direkt anzuzeigen. Bei Interesse finden Sie hier das Skript.

Jetzt kann das Skript ausgeführt werden mit
./emcli submit_masking_job -definition_name="MASKING_DEF_1"
Job ID                            Execution ID
89133F3F24655752E040A50AE8F45858  89133F3F24675752E040A50AE8F45858 
Damit wird das Skript sofort als Job in Grid Control gestartet. Dabei werden auch hier die gespeicherten preferred Credentials genutzt, oder im Kommando werden diese angegeben. Wie Sie preferred Credentials mit EMCLI erzeugen können finden Sie im Teil 1 dieser Tipp-Reihe. Der Data Masking Job ist auch wie jeder andere Job in Grid Control sichtbar:



Der Job kann aber auch mittels EMCLI verfolgt und überwacht werden. Näheres zur Verwendung von Jobs in EMCLI finden Sie im Teil 2 dieser Tipp-Reihe.

Dieser Tipp möchte Ihnen einen schnellen Zugang zu den gezeigten Kommandos geben. Daher wurde auf die Angabe aller möglichen Optionen verzichtet, da diese im Handbuch "OracleŽ Enterprise Manager Command Line Interface" zu finden sind.

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 bzgl. Auditing sind Basisfunktionalität, für die Sie keine zusätzlichen Lizenzen benötigen. Die Nutzung des Data Masking Packs erfordert eine separate Lizenzierung dieses Packs.
Versionshinweis:
Die in diesem Tipp angegebene Syntax bzgl. Auditings bezieht sich auf die Version von Grid Control 10.2.0.5.
Die Kommandos für das Data Masking Pack in EMCLI stehen erst mit der Version Grid Control 11.1 zur Verfügung.

Zurück zur Community-Seite