Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> Re: Perl code example

Re: Perl code example

From: Jared Still <jkstill_at_cybcon.com>
Date: Tue, 18 Sep 2001 15:08:34 -0700
Message-ID: <F001.003919CF.20010918082017@fatcity.com>

 I'm looking for a Perl example passing parameters.

>

> The code below has the userids and passwords hardcoded in clear text in the
> system line, parms 3 and 5 (five lines from the bottom), and the Oracle sid
> is hardcoded also. The code has to be changed to 1) read .pwd1 and .pwd2
> files containing the passwords, and set a literal for the SID and
> substitute it at in the code.

Linda,

Here's a cheap lightweight password server.

Put the files pwd.pm and pwd.pl into a directory and try as is.

Follow the example of the template in pwd.pm and fill in with your own wervers/instances/usernames.

Copy the file 'pwd.pm' to some secure location, and change the line "use lib './" to "use lib 'full_path_to_pwd.pm".

You can cut and paste pwd.pl into your code.

When 'Perl for Oracle DBA's' comes out ( or whatever we eventually call it" it will have a network password server in it, with encrypted transmissions.

This one should suffice though.

Jared

PS. the power of Perl demonstrated. this took 30 minutes. :)


use lib './';

use pwd;
use Getopt::Long;

my %optctl;

GetOptions( \%optctl,
        "username:s",
        "instance:s",
        "server:s",
        "z|h|help" => \$help

);

if ( $help ) {

        usage();
        exit 1;

}
$optctl{server} || do { usage();exit 2};
$optctl{instance} || do { usage();exit 3};
$optctl{username} || do { usage();exit 4};

my $password = pwd::password(
        $optctl{server},
        $optctl{instance},
        $optctl{username}

);

print "Password: $password\n";

sub usage {

        print qq{
pwd.pl

  --server
  --instance
  --username

};
}
hŽ

package pwd;

$PKG = pwd;

=head1

stuff between '=head1' and '=cut' is comments

here's an example

my %passwd = (

        server => {
                instance => {
                        username => 'password',
                        username => 'password'
                }
        }

);

=cut

%passwd = (

        venus => {

                db1 => {
                        system => 'foxtrot',
                        sys => 'over_the_hedge'
                },

                db2 => {
                        system => 'user_friendly',
                        sys => 'gpf-comics'
                }

        },

        mars => {
                db1 => {
                        system => 'ubersoft',
                        sys => 'get_fuzzy'
                },

                db3 => {
                        system => 'schlock',
                        sys => 'mercenary'
                }

        }

);

sub password {

        my ( $server, $instance, $username ) = @_;
        use Carp;

        $server || croak "Please specify server in $PKG\n";
        $instance || croak "Please specify instance in $PKG\n";
        $username || croak "Please specify username in $PKG\n";

        $passwd{$server}{$instance}{$username};
        

}

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Jared Still
  INET: jkstill_at_cybcon.com

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
Received on Tue Sep 18 2001 - 17:08:34 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US