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