Jared,
> When 'Perl for Oracle DBA's' comes out...
Do you have an ETA on this? Are you going to put it up on SourceForge or the
like?
Yours curiously,
Steve Orr
-----Original Message-----
Sent: Tuesday, September 18, 2001 10:20 AM
To: Multiple recipients of list ORACLE-L
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. :)
================================
==== pwd.pl ====================
#!/usr/bin/perl
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
};
}
hZ
================================
==== pwd.pm====================
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: Orr, Steve
INET: [EMAIL PROTECTED]
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: [EMAIL PROTECTED] (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).