On Thu, Aug 8, 2013 at 5:44 PM, Thomas Kellerer <spam_ea...@gmx.net> wrote:

> Don Parris wrote on 08.08.2013 23:13:
>
>  And to be able to run it from the Bash prompt (as securely as possible).
>>
>> I thought I could add the commands and run the create script by doing:
>> sudo -u postgres psql -U user -W -d mydb --file=/home/user/dev/mydb_**
>> create.sql
>>
>
>  I thought that, running my script as the superuser, it would have the
>> privileges necessary
>> to install the extension, but I still got a "permission denied" error.
>>
>
> You are not running the script as superuser because you supplied "-U user"
> and thus the _script_ is executed
> as "user". psql is started as "postgres" (the Linux user, not the DB user).
>
>
My bad - forgot to change the example above to reflect accurately the
user...  I did use the postgres user.


> I don't see the reason for using sudo in the first place, -U is enough:
>
>
Fair enough.  But I think you are onto something here below...

> Leave out the sudo, and use:
>
>   psql -U postgres -W -d mydb --file=/home/user/dev/mydb_**create.sql
>
> Or if you do want to use sudo, the leave out the -U user parameter:
>
>   sudo -u postgres psql -d mydb --file=/home/user/dev/mydb_**create.sql
>
>
>
When I try a simple psql -U postgres -W - just to initiate the psql
session, I get:
psql: FATAL:  Peer authentication failed for user "postgres"

It's like my regular user cannot connect as the postgres user.

However, this works (with me just typing my password for sudo):
donp@wiesbaden:~$ sudo -u postgres psql -U postgres
[sudo] password for donp:
psql (9.1.9)
Type "help" for help.

postgres=# \q

Maybe I have some permissions issues?

Thanks,
Don

Reply via email to