>>>>> "bk" == Boulat Khakimov <[EMAIL PROTECTED]> writes:

    bk> How do I grant permissions on everything in the selected
    bk> databes?

    bk> GRANT doesnt take as on object database name nor does it
    bk> accept wild chars....

Attached is some Perl code I wrote long ago to do this.  This
particular code was done for Keystone, a problem tracking database and
it would do a "GRANT ALL".  Modify it as needed.  Last I checked it
worked with both PostgreSQL 6.5.x and 7.0.x

#! /usr/bin/perl -w
# I'm also appending a Perl script to grant public access to all
# keystone tables.  It uses the Pg module for PostgreSQL, so you will
# need to add that first.  However, I find it a bit less tedious than
# granting access by hand....
# Roland B. Roberts, PhD                  Custom Software Solutions
# [EMAIL PROTECTED]                           101 West 15th St #4NN
# [EMAIL PROTECTED]                              New York, NY 10011

use Pg;

if (defined $ARGV[0]) {
    $dbname = $ARGV[0];
} else {
    $dbname = "keystone";
}
print "connecting to $dbname\n";
$dbh = Pg::connectdb("dbname=$dbname $ARGV[1]");
die "Pg::connectdb failed, $dbh->errorMessage"
    unless ($dbh->status == PGRES_CONNECTION_OK);

$c{relname} = $dbh->exec ("select relname from pg_class where relname !~ '^pg_'  and 
relkind != 'i'");

die "Pg::exec, $dbh->errorMessage" 
    unless ($c{relname}->resultStatus == PGRES_TUPLES_OK);

for ($i = 0; $i < $c{relname}->ntuples; $i++) {
        $relname = $c{relname}->getvalue($i,0);
        print "grant all on $relname to public\n";
        $c{grant} = $dbh->exec ("grant all on $relname to public");
        die "Pg::exec, ".$dbh->errorMessage
            unless ($c{grant}->resultStatus == PGRES_COMMAND_OK);
}

roland
-- 
                       PGP Key ID: 66 BC 3B CD
Roland B. Roberts, PhD                             RL Enterprises
[EMAIL PROTECTED]                     76-15 113th Street, Apt 3B
[EMAIL PROTECTED]                          Forest Hills, NY 11375

---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

http://www.postgresql.org/search.mpl

Reply via email to