Confusion over Postgres usernames/passwords/databasenames

10 views
Skip to first unread message

Jason Hsu, Android developer

unread,
Apr 4, 2013, 10:32:05 AM4/4/13
to rubyonra...@googlegroups.com
I have a Ruby script (https://github.com/jhsu802701/bsf-scrape/blob/master/scrape.rb) that scrapes web pages and stores the results in a Postgres database.  I'm trying to set this up not only in the development environment but in a production environment as well, and the production environment is giving me authentication errors.

I'm confused over the names and passwords.  There are:
1A.  Local machine (user1A and password1A): used for logging in when I boot up Linux, owner of the Ruby script
1B.  Local Postgres (user1B and password1B): the username and password for PostSQL
1C.  Name of the local Postgres database (db1C)
2A.  Web host SSH (user2A and password 2A): the username and password for connecting to the production environment through SSH
2B.  Web host Postgres (user2B and password 2B): the username and password
2C.  Name of the remote Postgres database (db1C)

The script has a class called FundDatabase.

A password needs to be specified in the conn function within the FundDatabase class:
def connect
    @conn = PG.connect(
        :dbname => $db_name,
        :user => $db_user,
        :password => $db_password)
end

I keep getting confused.  My questions:
1.  When I create a local superuser (user1B) with the command "CREATE ROLE [local username] SUPERUSER LOGIN;", why don't I need to provide a password (password1B) specific to this user?
2.  In order to get my script to run, user1B must be the same as user1A, or I get an authentication error.  Am I correct in using the same usernames both for my local machine and the local Postgres database?
3.  In the @conn function in my script in the production environment, am I supposed to use my SSH login (user2A) and password (password2A)?  Or am I supposed to use my database login (user2B) and password (password2B)?  Do user2A and user2B need to be one and the same (just like user1A and user1B)?

Craig White

unread,
Apr 4, 2013, 2:01:32 PM4/4/13
to rubyonra...@googlegroups.com
----
postgresql authentication is accomplished by a file called pg_hba.conf on the server itself and you should located that file, make any changes you need to make and restart the postgresql server to implement.

One the user can connect, the actual users (or groups) must have assigned permissions to read, write to the particular database within postgres itself.

Craig
Reply all
Reply to author
Forward
0 new messages