Обсуждение: Connecting via perl gives "root" does not exist

Поиск
Список
Период
Сортировка

Connecting via perl gives "root" does not exist

От
Randall Perry
Дата:
I'm new at PostgreSQL.

So far, succesfully compiled & installed it. Created a db, created a table,
and 'copied' tab-delim data into it.

Also downloaded and installed Perl Pg mod (that was a pain; had to sen ENV
variables, and had to force install because of the "root" does not exist
error in make test).

Here's the example script from the Pg readme (with my own db info):

use Pg;
    $conn = Pg::connectdb("dbname=tasbill");
    $res  = $conn->exec("SELECT * from cust");
    while (@row = $res->fetchrow) {
        print join(" ", @row);
    }


Works fine if I log in as 'postgres' before executing script, but fails if
logged in as any other user. I'm using the default pg_hba.conf file, which I
thought would allow local users to connect to any database:

local        all                                           trust
host         all         127.0.0.1     255.255.255.255     trust

What am I missing??



--
Randy Perry
sysTame
Mac Consulting/Sales





Re: Connecting via perl gives "root" does not exist

От
selkovjr@mcs.anl.gov
Дата:
> use Pg;
>     $conn = Pg::connectdb("dbname=tasbill");
>     $res  = $conn->exec("SELECT * from cust");
>     while (@row = $res->fetchrow) {
>         print join(" ", @row);
>     }
>
>
> Works fine if I log in as 'postgres' before executing script, but fails if
> logged in as any other user. I'm using the default pg_hba.conf file, which I
> thought would allow local users to connect to any database:
>
> local        all                                           trust
> host         all         127.0.0.1     255.255.255.255     trust
>
> What am I missing??

Either one or both of following:

1. Use proper user name in connectdb() call

2. Run 'createuser <username>' on the server side, where <username>
belongs to the user running the client script.

pg_hba.conf decides what hosts can connect and *how* to authenticate
users names. It does not control user access. That's what createuser
and GRANT queries are for.

--Gene

Re: Connecting via perl gives "root" does not exist

От
Randall Perry
Дата:
on 4/22/01 11:25 PM, selkovjr@mcs.anl.gov at selkovjr@mcs.anl.gov wrote:

>> use Pg;
>> $conn = Pg::connectdb("dbname=tasbill");
>> $res  = $conn->exec("SELECT * from cust");
>> while (@row = $res->fetchrow) {
>> print join(" ", @row);
>> }
>>
>>
>> Works fine if I log in as 'postgres' before executing script, but fails if
>> logged in as any other user. I'm using the default pg_hba.conf file, which I
>> thought would allow local users to connect to any database:
>>
>> local        all                                           trust
>> host         all         127.0.0.1     255.255.255.255     trust
>>
>> What am I missing??
>
> Either one or both of following:
>
> 1. Use proper user name in connectdb() call
>
> 2. Run 'createuser <username>' on the server side, where <username>
> belongs to the user running the client script.
>
> pg_hba.conf decides what hosts can connect and *how* to authenticate
> users names. It does not control user access. That's what createuser
> and GRANT queries are for.
>
> --Gene
>

Thanks. Did try createuser and grant commands, but forgot to end with ';'.
Re-did it and it works.

--
Randy Perry
sysTame
Mac Consulting/Sales



Re: Connecting via perl gives "root" does not exist

От
Jie Liang
Дата:
For other users, you have to provide username and password which should
existed in your db.

Jie LIANG

St. Bernard Software

10350 Science Center Drive
Suite 100, San Diego, CA 92121
Office:(858)320-4873

jliang@ipinc.com
www.stbernard.com
www.ipinc.com

On Sun, 22 Apr 2001, Randall Perry wrote:

> I'm new at PostgreSQL.
>
> So far, succesfully compiled & installed it. Created a db, created a table,
> and 'copied' tab-delim data into it.
>
> Also downloaded and installed Perl Pg mod (that was a pain; had to sen ENV
> variables, and had to force install because of the "root" does not exist
> error in make test).
>
> Here's the example script from the Pg readme (with my own db info):
>
> use Pg;
>     $conn = Pg::connectdb("dbname=tasbill user=foo password=bar");
>     $res  = $conn->exec("SELECT * from cust");
>     while (@row = $res->fetchrow) {
>         print join(" ", @row);
>     }
>
>
> Works fine if I log in as 'postgres' before executing script, but fails if
> logged in as any other user. I'm using the default pg_hba.conf file, which I
> thought would allow local users to connect to any database:
>
> local        all                                           trust
> host         all         127.0.0.1     255.255.255.255     trust
>
> What am I missing??
>
>
>
> --
> Randy Perry
> sysTame
> Mac Consulting/Sales
>
>
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://www.postgresql.org/search.mpl
>