Sven’s Technik-Blog

Einiges über Oracle, Security, Linux, … und auch über mich

  • Categories

  • Archives

  • Tag Cloud

New Features Oracle 11g: Scheduler und “Credentials”

Posted by Sven Vetter on October 14th, 2007

Mit dem in Oracle 10g eingeführten Scheduler (der in der Datenbank, implementiert mit dem Package dbms_scheduler) ist es leicht möglich, externe Programme (z.B. OS-Scripts) zu starten. Innerhalb der Datenbank konnte aber nicht gesteuert werden, unter welchem Betriebssystembenutzer die Programme laufen. Dies konnte nur über eine Datei pro ORACLE_HOME gesteuert werden (siehe Metalink Note 391820.1) - d.h. alle externen Programme liefen immer unter dem gleichen Account.

Auch wenn es nicht im New Features Dokument steht - über das neue Objekt CREDENTIAL ist es nun in Oracle 11g einfach möglich, jedem Job (bei Bedarf) andere Usernamen/Passwort-Kombinationen zuzuweisen.

Beispiel:

Anlegen der Credentials mit dem Namen "JOB_USER" und dem Usernamen job
:

BEGIN
 DBMS_SCHEDULER.CREATE_CREDENTIAL(
   credential_name       => 'JOB_USER',
   username              => 'job',
   password              => 'secretpwd');
END;
/
 

Benutzen der Credentials beim Anlegen eines Jobs:

BEGIN
  DBMS_SCHEDULER.CREATE_JOB(
   job_name             => 'EXTERNAL_JOB_TEST1',
   job_type             => 'EXECUTABLE',
   job_action           => '/home/job/ext_job.sh',
   enabled              => FALSE);
 
  -- hier werden die Credentials benutzt --
  DBMS_SCHEDULER.SET_ATTRIBUTE(
   name                  => 'EXTERNAL_JOB_TEST1',
   attribute             => 'credential_name',
   VALUE                 => 'JOB_USER');
 
  DBMS_SCHEDULER.SET_ATTRIBUTE(
   name                  => 'EXTERNAL_JOB_TEST1',
   attribute             => 'destination',
   VALUE                 => 'server.company.com:12345');
 
  DBMS_SCHEDULER.ENABLE(
   name                  => 'EXTERNAL_JOB_TEST1');
 
END;
/
 

Dies ist gleichzeitig ein Beispiel, wie externe Programme auch auf einem Remote-Rechner ausgeführt werden können (dazu gibt es mehr in unserem TechnoCircle).

Das verschlüsselte Passwort (und andere Informationen) stehen dann in der Tabelle sys.scheduler$_credential.

Tags: , ,

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>