Dbms scheduler shell script security

We are trying to setup database accounts to run external jobs using dbms_scheduler. With each user only having access to certain directories through mapped database directories.
Example:
DB User1 -> /home/user1/...
DB User2 -> /home/user2/..
The problem is, the User1 seems to be able create jobs that run scripts under user2 directories and visa versa. Worst yet, both db users can create jobs that run scripts in the Oracle home directory. Huge security hole. Is there a way to lock this down? I believe all scheduled jobs run as Oracle.
Thanks.

Hi,
In 10g there is no way to do this using dbms_scheduler. In 10g all users running external jobs (who must have the CREATE EXTERNAL JOB privilege) have their jobs run as the same OS user (what user the jobs run as is configurable). The only exception is jobs in the SYS schema which always run as the oracle user.
In 11g, you can use credential objects to have different database users run jobs as different OS users.
For more information see this post
Guide to External Jobs on 10g with dbms_scheduler e.g. scripts,batch files
Hope this helps,
Ravi.

Similar Messages

  • Need a help in scheduling shell script

    I am using following script to check db status.
    check_stat=`ps -ef|grep ${ORACLE_SID}|grep pmon|wc -l`;
    oracle_num=`expr $check_stat`
    if [ $oracle_num -lt 1 ]
    then
    exit 0
    fi
    # Test to see if Oracle is accepting connections
    $ORACLE_HOME/bin/sqlplus -s "/as sysdba" > /tmp/check_$ORACLE_SID.ora <<ENDSCRIPT
    select name from v\$database;
    exit
    ENDSCRIPT
    # If not, exit and e-mail . . .
    check_stat=`cat /tmp/check_$ORACLE_SID.ora|grep -i error|wc -l`;
    oracle_num=`expr $check_stat`
    if [ $oracle_num -ne 0 ]
    then
    mailx -s "$ORACLE_SID is down!" [email protected] < /tmp/check_$ORACLE_SID.ora
    #else
    #mailx -s "$ORACLE_SID is up and running" [email protected] < /tmp/check_$ORACLE_SID.ora
    exit 16
    fi
    while executing at command prompt, it is working fine. I need to know what lines i need to add to schedule this in a crontab?
    thanks in advance

    Pavan - a DBA wrote:
    i am trying to schedule it so that it will run for every 15 min
    0,15,30,45 * * * * myscriptI don't have access to a *nix at the moment, so I may be off on the number of asterisks, but you get the idea on minutes and hours                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • DBMS SCHEDULER: Job of type 'Chain' is failing

    Hi,
    I am using Oracle 10gR2 version. The job created on top of chain is failing for some reason. I couldn't trace the exact error. Please help me in debugging this as I am new to using dbms scheduler.
    --Script I have used to create a chain
    BEGIN
    DBMS_SCHEDULER.create_chain (
    chain_name => 'DAILY_JOB_CHAIN',
    rule_set_name => NULL,
    evaluation_interval => interval '5' minute ,
    comments => 'Chain to run the daily jobs');
    END;
    --Script used to create a job and start it immediately.
    BEGIN
    DBMS_SCHEDULER.CREATE_JOB (
    job_name => 'daily_job_rerun',
    job_type => 'CHAIN',
    job_action => 'daily_job_chain',
    start_date => SYSTIMESTAMP,
    auto_drop => true,
    enabled => TRUE);
    END;
    Soon after I ran the create_job procedure, the job has started immediately but is failing immediately without starting the chain. I have checked the USER_SCHEDULER_JOB_LOG table for errors. This is what is stored in the table.
    LOG_ID JOB_NAME OPERATION STATUS ADDITIONAL_INFO
    144835 DAILY_JOB_RERUN CHAIN_RUN FAILED CHAIN_LOG_ID="144834"
    144834 DAILY_JOB_RERUN CHAIN_START RUNNING
    Please help.
    Edited by: user10626493 on Oct 22, 2009 11:45 PM

    Chain rule for one of the chain steps has been changed and hence the job failed. After correcting the chain rule, the job has started fine.

  • Trouble with: "do shell script" password

    Here's the code I'm trying to use to unlock my login.keychain via Applescript:
    do shell script "security unlock-keychain login.keychain" password "mypasswordgoeshere"
    I'm getting the following error message in AppleScript Editor:
    error "password to unlock login.keychain:
    security: SecKeychainUnlock login.keychain: The user name or passphrase you entered is not correct." number 51
    Any suggestions on how to get this working?

    That function uses the password differently. Run the following:
    do shell script "security unlock-keychain -p password login.keychain"
    (52720)

  • How I run a shell script from the scheduler on 10.2.0.2.0 ?

    Hello Oracle People,
    I'd like to run a shell script from the Scheduler in my 10g database.
    Right now it is a simple shell script.
    Eventually it will wrap RMAN commands to back up my DB.
    I wrote a simple pl/sql script to create a job:
    -- cr_job10.sql
    BEGIN
    DBMS_SCHEDULER.CREATE_JOB (
    job_name => 'my_backup_job',
    job_type => 'EXECUTABLE',
    job_action => '/h/oracle/scripts/tst.sh',
    start_date => '06-SEP-07 5.33.00PM US/Pacific',
    repeat_interval => 'FREQ=DAILY',
    end_date => '08-SEP-07 4.00.00PM US/Pacific',
    enabled => TRUE,
    comments => 'My Backup Job');
    END;
    I see no errors when I run the above procedure.
    I checked DBA_SCHEDULER_JOBS and the job is in there.
    The scheduler, though, errors out with an error which I see in a trace file:
    /h/oracle/admin/orcl/bdump/orcl_j000_22396.trc
    Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production
    With the Partitioning, OLAP and Data Mining options
    ORACLE_HOME = /h/oracle/product/10r2
    System name: SunOS
    Node name: sol
    Release: 5.10
    Version: Generic_118855-14
    Machine: i86pc
    Instance name: orcl
    Redo thread mounted by this instance: 1
    Oracle process number: 15
    Unix process pid: 22396, image: oracle@sol (J000)
    *** ACTION NAME:(MY_BACKUP_JOB) 2007-09-06 17:33:00.175
    *** MODULE NAME:(DBMS_SCHEDULER) 2007-09-06 17:33:00.175
    *** SERVICE NAME:(SYS$USERS) 2007-09-06 17:33:00.175
    *** CLIENT ID:() 2007-09-06 17:33:00.175
    *** SESSION ID:(140.13520) 2007-09-06 17:33:00.175
    *** 2007-09-06 17:33:00.175
    ORA-12012: error on auto execute of job 53267
    ORA-27369: job of type EXECUTABLE failed with exit code: 274662
    I googled on this:
    ORA-27369: job of type EXECUTABLE failed with exit code: 274662
    Google returned only 1 hit.
    There, I see some evidence that I need to configure something inside
    of Oracle to run shell scripts from the scheduler, but possibly just
    for machines running windows. I'm running Solaris.
    Do any of you know what I need to configure inside of Oracle to
    run shell scripts from the scheduler?
    -Owen

    Hello people,
    I should have added this bit of information:
    "The script runs fine from oracle's crontab."
    "The script runs fine from a shell owned by oracle."
    I'm getting responses telling me to check my env variables and permissions
    which would be helpful to a UNIX novice.
    I have a feeling that no one is using the scheduler to run RMAN scripts.
    Tim Hall suggested I take a close look at these files:
    $ORACLE_HOME/rdbms/admin/externaljob.ora
    $ORACLE_HOME/bin/extJob
    Currently I'm setup like this:
    bash sol root /h/oracle/product/10r2/bin 31 #
    bash sol root /h/oracle/product/10r2/bin 31 # ll $ORACLE_HOME/rdbms/admin/externaljob.ora
    -rw-r--r-- 1 root dba 52 Sep 7 15:29 /h/oracle/product/10r2/rdbms/admin/externaljob.ora
    bash sol root /h/oracle/product/10r2/bin 32 #
    bash sol root /h/oracle/product/10r2/bin 32 # cat $ORACLE_HOME/rdbms/admin/externaljob.ora
    # externaljob.ora
    run_user = rman
    run_group = rman
    bash sol root /h/oracle/product/10r2/bin 33 #
    bash sol root /h/oracle/product/10r2/bin 33 #
    bash sol root /h/oracle/product/10r2/bin 33 #
    bash sol root /h/oracle/product/10r2/bin 33 # ll $ORACLE_HOME/bin/ext*
    -rwsr-x--- 1 rman dba 30388 Sep 21 2006 /h/oracle/product/10r2/bin/extjob*
    -rwsr-x--- 1 rman dba 30392 Sep 21 2006 /h/oracle/product/10r2/bin/extjobo*
    -rwsr-x--- 1 rman dba 34468 Sep 21 2006 /h/oracle/product/10r2/bin/extproc*
    -rwxr-xr-x 1 oracle dba 300 Sep 21 2006 /h/oracle/product/10r2/bin/extusrupgrade*
    bash sol root /h/oracle/product/10r2/bin 34 #
    bash sol root /h/oracle/product/10r2/bin 34 #
    bash sol root /h/oracle/product/10r2/bin 34 #
    On my system, the user 'nobody' has no shell so I cannot use nobody.
    I created a user named rman:
    bash sol root /h/oracle/product/10r2/bin 34 #
    bash sol root /h/oracle/product/10r2/bin 34 #
    bash sol root /h/oracle/product/10r2/bin 34 # su - rman
    Sun Microsystems Inc. SunOS 5.10 Generic January 2005
    $
    $ id
    uid=220(rman) gid=220(rman)
    $
    $
    $ date
    Fri Sep 7 16:30:03 PDT 2007
    $
    $
    Jared points out that rman needs access to extproc:
    $ ls -la /h/oracle/product/10r2/bin/extproc
    -rwsr-x--- 1 rman dba 34468 Sep 21 2006 /h/oracle/product/10r2/bin/extproc
    $
    $
    Here is a demo of rman running his script:
    bash sol root /h/oracle/product/10r2/bin 35 # su - rman
    Sun Microsystems Inc. SunOS 5.10 Generic January 2005
    $
    $
    $ ls
    scripts
    $
    $
    $ scripts/tst.sh
    $
    $
    $ cat scripts/tst.sh
    #! /bin/sh
    /usr/bin/date > /tmp/tst.sh.out.txt 2>&1 &
    exit 0
    $
    $
    $ cat /tmp/tst.sh.out.txt
    Fri Sep 7 16:31:23 PDT 2007
    $
    $ rm /tmp/tst.sh.out.txt
    $
    I am focused on this error:
    ORA-27369: job of type EXECUTABLE failed with exit code: 274662
    And I am focused on this exit code: 274662
    What does 274662 mean?
    If the Scheduler gives me an error like "274662" rather than some English,
    it's obvious to me the Scheduler is a POS and I should not use it.
    And of course,
    If I cannot run RMAN from Oracle Scheduler, I'll use cron.
    -Owen

  • Schedule workbook using with Unix shell script

    Hi,
    Can we schedule workbook using with Unix shell script?
    Thanks,
    Jay

    I can't imagine how.
    1. You can schedule Disco workbooks via Disco itself.
    2. You can schedule Disco workbooks to run and output in different file formats automatically via batch scheduler in Windows running Disco Desktop directly (or can user VBasic).
    3. You can schedule Disco workbooks to run and output in different file formats automatically via a Java program running the Java Command Line interface.
    Moving forward, Oracle has announced that with a further interfacing of Disco with XML Publisher, you'll be able to use Oracle Apps concurrent manager and scheduling. But that's coming supposedly at the end of this year.
    And I think that's about it.
    Russ

  • Dynamic shell script scheduling

    I want to automate a report to run on the 20th of every month through a shell script. However, I don't want to run if 20th happens to be a weekend. Any ideas on how to do this? Do I need a seperate script to check for the date?
    thanks

    If you do not want to use shell scripts please have a look at the documentation for 'schedule' command line parameter for reports for scheduling
    Thanks
    The Oracle Reports Team

  • Trying to run Power shell Script on task schedule

    My case is i'm trying to run a power shell script through the task schedule.
    Note if i run the script locally it is working fine but from the task schedule it is not working.
    More information: 
    script function: Password Change Notification
    Task name : test3
    Time to do the task: 9:08 am every day
    the status : running 
    .ps1 file location: under C\windows\system32\
    some actions in the task history after the dated time to run:
    1 Task Scheduler launched "{3023b1eb-9b29-47b9-ace2-e6083e2f00cc}"  instance of task "\test3" due to a time trigger condition
    2 Task Engine "S-1-5-21-60622444-1628707926-2526327935-500: enviroment\Admin:S4U:LUA"  received a message from Task Scheduler service requesting to launch task "\test3" .
    3 Task Scheduler started "{3023b1eb-9b29-47b9-ace2-e6083e2f00cc}" instance of the "\test3" task for user "enviroment\admin
    4 Task Scheduler launched action ""C:\Windows\System32\Password Change Notification\Password Change Notification.ps1"" in instance "{3023b1eb-9b29-47b9-ace2-e6083e2f00cc}" of task "\test3
    5 Task Scheduler launch task "\test3" , instance "C:\Windows\System32\notepad.exe"  with process ID 5052

    Hi MeipoXu,
    First of all i would like to thank you for your answer, i followed the URL that you posted already in the previous comment and unfortunately it didn't work, and please find my ps1 file
    content as typed below and give me your feedback on that.
    #  # Version 1.1 May 2014
    # Robert Pearman (WSSMB MVP) # TitleRequired.com
    # Script to Automated Email Reminders when Users Passwords due to Expire.
    # # Requires: Windows PowerShell Module for Active Directory
    # # For assistance and ideas, visit the TechNet Gallery Q&A Page. http://gallery.technet.microsoft.com/Password-Expiry-Email-177c3e27/view/Discussions#content
    # Please Configure the following variables....
    $smtpServer="outlook. myDomain " $expireindays = 7
    $from = "الدعم الفني
    <ITHelpDesk@myDomain>"
    $logging = "Enabled" # Set to Disabled to Disable Logging
    $logFile = "PassExpireNotlog.csv" # ie. c:\mylog.csv
    $testing = "Enabled" ## "Enabled" # Set to Disabled to Email Users
    $testRecipient = "MyEmail@MyDomain"
    $encoding = [System.Text.Encoding]::Unicode $date = Get-Date -format ddMMyyyy
    # Check Logging Settings if (($logging) -eq "Enabled")
    {     # Test Log File Path
        $logfilePath = (Test-Path $logFile)     if (($logFilePath) -ne "True")
        {         # Create CSV File and Headers
            New-Item $logfile -ItemType File
            Add-Content $logfile "Date,Name,EmailAddress,DaystoExpire,ExpiresOn,MsgBody"
        } } # End Logging Check
    # Get Users From AD who are Enabled, Passwords Expire and are Not Currently Expired
    Import-Module ActiveDirectory $users = get-aduser -filter * -SearchScope Subtree -SearchBase "OU=UsersOU,DC=MyDomain,DC=MyrootDomain,DC=MYrootNS" -properties Name, PasswordNeverExpires, PasswordExpired, PasswordLastSet,
    EmailAddress |where {$_.Enabled -eq "True"} | where { $_.PasswordNeverExpires -eq $false } | where { $_.passwordexpired -eq $false }
    $maxPasswordAge = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge
    # Process Each User for Password Expiry foreach ($user in $users)
    {     $Name = (Get-ADUser $user | foreach { $_.Name})
        $emailaddress = $user.emailaddress
        $passwordSetDate = (get-aduser $user -properties * | foreach { $_.PasswordLastSet })
        $PasswordPol = (Get-AduserResultantPasswordPolicy $user)
        # Check for Fine Grained Password
        if (($PasswordPol) -ne $null)     {
            $maxPasswordAge = ($PasswordPol).MaxPasswordAge
        $expireson = $passwordsetdate + $maxPasswordAge
        $today = (get-date)     $daystoexpire = (New-TimeSpan -Start $today -End $Expireson).Days
                 # Set Greeting based on Number of Days to Expiry.
        # Check Number of Days to Expiry
        $messageDays = $daystoexpire     if (($messageDays) -ge "2")
        {         $messageDays = "خلال
    " + "$daystoexpire" + " ايام"
        }     elseif (($messageDays) -eq "2")
        {         $messageDays = "خلال يومين
        }     else
        {         $messageDays = "اليوم."
        }     # Email Subject Set Here
        $subject="كلمة المرور الخاصة بك ستنتهي
    $messageDays"
           # Email Body Set Here, Note You can use HTML, including Images.
        $body =     "<P style='font-family: Arial; font-size: 16pt' />
        <center> الاستاذ/ $name
    </center> 
        <br>     <center>
    كلمة المرور الخاصة بك ستنتهي $messageDays </center>
        <br>     <center>
    نأمل تغييرها في أقرب فرصة حتي تتمكن من الدخول على النظام
    </center>
        <br>     <center>
    مع تحيات الادارة العامة لتقنية المعلومات
    </center> 
        <br>     </P>"
            # If Testing Is Enabled - Email Administrator
        if (($testing) -eq "Enabled")
        {         $emailaddress = $testRecipient
        } # End Testing     # If a user has no email address listed
        if (($emailaddress) -eq $null)
        {         $emailaddress = $testRecipient    
        }# End No Valid Email     # Send Email Message
        if (($daystoexpire -ge "0") -and ($daystoexpire -lt $expireindays))
        {          # If Logging is Enabled Log Details
            if (($logging) -eq "Enabled")
            {             Add-Content $logfile "$date,$Name,$emailaddress,$daystoExpire,$expireson,$body" 
            }         # Send Email Message
            Send-Mailmessage -smtpServer $smtpServer -from $from -to $emailaddress -subject $subject -body $body -bodyasHTML -priority High -Encoding $encoding
                    } # End Send Message
      } # End User Processing
    # End

  • Secure login to remote UNIX host and run a shell script

    Hi I am new to JAVA. I want to login to remote UNIX host from my application secure login (SSH) and run a shell script reside that remote host. Can any one let me know the way how to do it. If possible provide the code example.

    Runtime.exec with an ssh command (not really recommended).
    Much better, an SSH API (JSch, which needs JZlib, from http://www.jcraft.com/ is a good one).

  • Is this security hole still open? shell script "whoami"'

    looking for something else I found this article, basically saying:
    +Running the command:+
    +osascript -e 'tell application "ARDAgent" to do shell script "whoami"'+
    +will allow root execution.+
    +The problem can be temporarily fixed by launching the Terminal and using this command:+
    +sudo chmod 755 /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/MacOS/ARDAg ent+
    +Also, don't repair permissions or it will undo the fix.+
    you can read it at:
    http://www.macnn.com/articles/08/06/25/applescript.flaw/
    has this been fixed?

    j.v. wrote:
    I found (and can't quote you a citation to the URL now -- sorry) a webpage that provided what would appear to be counter-intuitive advice, but which seemed to fix it, and that was to enable remote management, select the "only allow certain users" option, and leave the list of users blank. That seemed to work. I also added a check in my periodic dailys to check the status of the suid of the aforementioned executable (basically do a ls -l and pipe it to awk to see if the suid bit was set), and if set, chmod it to clear it. So I am at least checking daily.
    Here's one reference: Mac OS X Root Escalation Through AppleScript

  • Need to call Shell script that uses SQL loader in APex4.1/11g

    Hi there!
    I have a requirement, wherein I have to call a shell script that connects to an external server, ftp's a file in and then uses sqlloader to load data into our table. Now we have the ftp script that does this for another program, but is a scheduled job. I wanted to call the ftp shell script from within APEX. Any suggestions on how this can be done, what PL/SQL logic can we use? I see online some people using dbms scheduler for this?
    Thank you
    Sun

    Hi,
    Create some sh script on your oracle host machine where you can join into external server and run the process.
    something like:
    run_external_sh.sh
    #!/bin/sh
    ssh ext_user@ext_host ./sqlloader/import/import.shThen create a external JOB to call it via ORACLE(PL/SQL)
    -- Call Shell Script.
    BEGIN
      DBMS_SCHEDULER.create_program (
        program_name        => 'external_call_sh',
        program_type        => 'EXECUTABLE',
        program_action      => '/local_host/call_external/sh/run_external_sh.sh',
        number_of_arguments => 0,
        enabled             => TRUE,
        comments            => 'Call external SH script');
    END;
    /Now you can create a scheduled/or not scheduled JOB
    -- Job defined by an existing program and schedule.
    BEGIN
      DBMS_SCHEDULER.create_job (
        job_name      => 'jb_external_call_sh',
        program_name  => 'external_call_sh',
        schedule_name => 'external_call_scheduler', -- created scheduler
        enabled       => TRUE,
        comments      => 'Job defined by an existing external_call_sh program and schedule.');
    END;
    /Now you can call the JOB in APEX in PL/SQL process.
    BEGIN
      -- Run job synchronously.
      DBMS_SCHEDULER.run_job (job_name            => 'jb_external_call_sh');
    END;Regards
    J :D

  • Shell script execution from stored procedure

    I am working on a project thallt requires a shell script be executed upon the execution of a stored procedure with Oracle 10g. I have researched the matter, but there does not seem to be much out there on how to execute lines of UNIX commands by use of a stored procedure. If anybody has ever gotten this to work, any information would be appreciated. If the task is impossible, let me know, I just could not confirm that it was not something that could be done.

    A combination of things can help you out here - none of which are easy or particularily secure.
    1) From plain PL/SQL, you can call 'external procedures'. That is basically a DLL or .so that the listener can load on demand, and that external procedure (EXTPROC) can run whatever you need from the C program. C can, in turn, call a shell.
    This is fairly well documented, but be aware that 1/2 of the info is in the PL/SQL docco and the other half in the Networking docco.
    A fair bit of info is available in metalink as well - if you have access, simply search on extproc.
    2) You can call a Java stored procedure which in turn has hooks to the outside world. That will probably require a PL/SQL to Java wrapper to make it available in your environment. Oracle has been using this one successfully for a while.
    3) Write the script using UTL_FILE and have a daemon look for, and execute, the script.
    4) Since you are using 10g, use the new job scheduler. It has excellent capability to interact with the OS, and it is available as a PL/SQL package (DBMS_SCHEDULER). I find the interface a bit heavy, but that could be wrapped by a library tailored to your specific needs.
    Let us know what you decide to do in the end (and why) - it is an interesting topic.

  • Calling the shell scripts written in Apps Server via DBMS_Schedueler

    Hi All,
    I am new to DBMS Shceduler.
    I had written shell scripts in Application Server(Not in Database Server).
    Is any one can advice me whether these shell scripts can be called via DBMS SCHEDULER?
    Thanks in Advance
    Regards
    A.Gopal

    Yes.
    Generally a Scheduler will have 3 parts, a Schedule, a Program and a Job. The parameter "program_type" in "Program" that can have these values 'PLSQL_BLOCK', 'STORED_PROCEDURE','EXECUTABLE'. The "EXECUTABLE" setting allows you to call a script as you request.
    Schedule Example
    begin
      dbms_scheduler.create_schedule 
      (schedule_name => 'DAILY_AT_4PM', 
       start_date=> trunc(sysdate)+18/24, 
       repeat_interval=> 'freq=daily;byhour=16;byminute=0;bysecond=0',
       comments=>' Run at 4pm every day'); 
    end;You can setup and reuse something like the above for a job you want to run daily at 4PM
    You can check schedules by running some SQL like this :
    select schedule_name, schedule_type, start_date, repeat_interval from dba_scheduler_schedules where owner = 'SCOTT';
    Program Example
    BEGIN
    DBMS_SCHEDULER.CREATE_PROGRAM (
       program_name           =>  'MY_SAVED_PROGRAM1',
       program_action         => '/usr/local/bin/date',
       program_type           => 'EXECUTABLE',
       comments               => 'My comments here');
    END;
    /You can check Programs by running some SQL like this :
    SELECT owner, program_name, enabled FROM dba_scheduler_programs where owner = 'SCOTT';
    Job Example
    begin
      dbms_scheduler.create_job
      (job_name => 'JOB_EXAMPLE',
      program_name=> 'MY_SAVED_PROGRAM1',
      schedule_name=>'DAILY_AT_4PM',
      enabled=>true,
      auto_drop=>false,
      comments=>'Job to run date');
    end;You can check Jobs by running some SQL like this :
    SELECT owner, job_name, enabled FROM dba_scheduler_jobs where owner = 'SCOTT';
    The forum also has its own section for this which you can find here :
    Scheduler
    Best Regards
    mseberg

  • Problem-Report generation using shell script

    Hi
    We have the Production database and the Reporting database (copy of Production database),
    both on Oracle 9.2.0.5 and Solaris 5.8. There is a package inside the Oracle database, which extracts some data from inside the
    database, and would generate a report. A shell script has been created in Solaris which would
    send in the parameters and call the pakage to generate the report. The parameters it is sending is
    the name of report to be generated, and the location where it is to be generated, both hard-coded into
    the script. The script is scheduled to run through crontab.
    The problem we are facing is that, if we run the script for Reporting database, it successfully
    generates the report. But if we use that script for Production database, it gives the error
    "Invalid directory Path". I have tried using various other directory paths, even '/tmp'
    and '/', but it still gives the same error when executed for Production dataabse.
    Could somebody provide any ideas what might be going wrong.
    The reasons it is to be executed on Prod db and not the Reporting database are unavoidable.
    It anyway runs in off business hours and takes about 10secs to execute.
    Please do let me know if there is any other info that I missed to provide here.
    Thanks in advance...

    I will be just guessing because you didn't provide contents of script and package.
    The "Invalid directory path" as you said could be ORA-29280 due non existent directory.
    Try execute (as sys or system) select * from dba_directories; (or select * from all_directories; as user which the script is login to) on both databases and compare the results. If there is missing your important directory then create it using create directory <dirname>; (from sqlplus and don't forget to grant rights for user).
    This error could come from shell script. In that case you should find resolution yourself because you didn't provide script source.

  • How can i pass parameter values from html to a shell script

    Hi Guys...
    I had a requirement where i need to execute a sql statement and print the output in HTML page. This report has parameters to enter. So i created a HTML form which accepts parameters. When the submit button is pressed, the action tag in the form invokes unix shell script file. It will open sqlplus and run the sql script file .sql and print the output in the HTML page.
    sql script contains the query and some set options which prints the output in HTML page. Like "SET MARKUP HTML ON"... The query has some parameters like "select * from emp where empno = &&empnumber. I will use the same name "empnumber" while created the HTML parameter form like " <input type = "text" name="empnumber" size="10" align="left">.
    user sees this parameter form and enters some value in to that empno text box.
    My question is how can i catch these parameter values in a shell script and pass it to the sql script to execute it.
    Help Appreciated
    Thanx

    This is a A Bad Idea (tm). This type of CGI processing is old and were (and still is) full of security holes. Very easy to inject stuff (Unix commands and SQL) into it.. To get those parameters into SQL*Plus requires using Unix shell commands to process it - and something like a backquote allows all kinds of nasty stuff to be injected. The Unix shell was never designed to be used as a secure CGI environment.
    There are far better and far superior alternatives. Perl (with Perl_DBI) and PHP (using Zend Core for Oracle) come to mind as web scripting languages.
    Even easier is using HTMLDB. Very few moving parts. Is free. Supports Oracle 9.2 and 10G.

Maybe you are looking for

  • How to edit a post here in the forum?

    I have noticed several posts in which the original author of the post went back into it to edit it. How is that done? There have been many times I wanted to go back and edit. Thank you. Lorna in Southern California

  • How to pre-allocate a ByteBuffer object to read data from a Socket

    Hi, So far every example on ByteBuffer allocation has shown something like this ByteBuffer buffer=ByteBuffer.allocate(1024); Im stuck because i dont know how much data will arrive on the socket. Is there anyway I can find out how much data is present

  • Recovery from External hard drive

    So I backed up all my files onto an external hard drive using the hp program, before reinstalling windows. However when I go to restore them it goes through and restores some of the files and then when it gets to 100% and it says please insert disk 2

  • Characteristic 0MATERIAL is blocked by conversion

    Hi experts, I am transporting the 0MATERIAL changes into production (after extra navigational attribute added), while importing into production system, its giving below error message. Characteristic 0MATERIAL is blocked by conversion the new navigati

  • IPhoto Locks Up, What do I do?

    Freezes when I start it. I can't scroll down thru my albums, the cursor is just unresponsive when you try to click on window to anything. Does not show that software is "not responding" when applying force quit. Anybody have these syptoms? Any soluti