Confusion over Postgres usernames/passwords/databasenames

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)?

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)?