Skip to content

Connecting BI to PostgreSQL

A read-only database user is available for connecting Business Intelligence (BI) tools to import or directly query the database. The database port is currently available via direct TCP/IP over the public internet.

Connection settings

  • Host: db.bi.indevets.com
  • Port: 5432
  • Database name: prod_indevets
  • Database username: obtain from credential vault
  • Database password: obtain from credential vault

Example shell connection

docker pull postgres:11-alpine

docker run --rm -it postgres:11-alpine \
    psql \
        -h db.bi.indevets.com \
        -p 5432 \
        -U dumper \
        prod_indevets

Creating read-only users

To create a new read-only login for a BI user with access to all schema, run the following script (replacing NEWUSER and NEWPASSWORD before running):

CREATE ROLE NEWUSER LOGIN PASSWORD 'NEWPASSWORD';
GRANT CONNECT ON DATABASE prod_indevets TO NEWUSER;

GRANT USAGE ON SCHEMA public TO NEWUSER;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO NEWUSER;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO NEWUSER;
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO NEWUSER;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT USAGE, SELECT ON SEQUENCES TO NEWUSER;

GRANT USAGE ON SCHEMA data TO NEWUSER;
GRANT SELECT ON ALL TABLES IN SCHEMA data TO NEWUSER;
ALTER DEFAULT PRIVILEGES IN SCHEMA data GRANT SELECT ON TABLES TO NEWUSER;
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA data TO NEWUSER;
ALTER DEFAULT PRIVILEGES IN SCHEMA data GRANT USAGE, SELECT ON SEQUENCES TO NEWUSER;

GRANT USAGE ON SCHEMA goals TO NEWUSER;
GRANT SELECT ON ALL TABLES IN SCHEMA goals TO NEWUSER;
ALTER DEFAULT PRIVILEGES IN SCHEMA goals GRANT SELECT ON TABLES TO NEWUSER;
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA goals TO NEWUSER;
ALTER DEFAULT PRIVILEGES IN SCHEMA goals GRANT USAGE, SELECT ON SEQUENCES TO NEWUSER;

GRANT USAGE ON SCHEMA greenhouse TO NEWUSER;
GRANT SELECT ON ALL TABLES IN SCHEMA greenhouse TO NEWUSER;
ALTER DEFAULT PRIVILEGES IN SCHEMA greenhouse GRANT SELECT ON TABLES TO NEWUSER;
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA greenhouse TO NEWUSER;
ALTER DEFAULT PRIVILEGES IN SCHEMA greenhouse GRANT USAGE, SELECT ON SEQUENCES TO NEWUSER;

GRANT USAGE ON SCHEMA helpers TO NEWUSER;
GRANT SELECT ON ALL TABLES IN SCHEMA helpers TO NEWUSER;
ALTER DEFAULT PRIVILEGES IN SCHEMA helpers GRANT SELECT ON TABLES TO NEWUSER;
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA helpers TO NEWUSER;
ALTER DEFAULT PRIVILEGES IN SCHEMA helpers GRANT USAGE, SELECT ON SEQUENCES TO NEWUSER;

GRANT USAGE ON SCHEMA paycor TO NEWUSER;
GRANT SELECT ON ALL TABLES IN SCHEMA paycor TO NEWUSER;
ALTER DEFAULT PRIVILEGES IN SCHEMA paycor GRANT SELECT ON TABLES TO NEWUSER;
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA paycor TO NEWUSER;
ALTER DEFAULT PRIVILEGES IN SCHEMA paycor GRANT USAGE, SELECT ON SEQUENCES TO NEWUSER;

GRANT USAGE ON SCHEMA reports TO NEWUSER;
GRANT SELECT ON ALL TABLES IN SCHEMA reports TO NEWUSER;
ALTER DEFAULT PRIVILEGES IN SCHEMA reports GRANT SELECT ON TABLES TO NEWUSER;
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA reports TO NEWUSER;
ALTER DEFAULT PRIVILEGES IN SCHEMA reports GRANT USAGE, SELECT ON SEQUENCES TO NEWUSER;

GRANT USAGE ON SCHEMA staging TO NEWUSER;
GRANT SELECT ON ALL TABLES IN SCHEMA staging TO NEWUSER;
ALTER DEFAULT PRIVILEGES IN SCHEMA staging GRANT SELECT ON TABLES TO NEWUSER;
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA staging TO NEWUSER;
ALTER DEFAULT PRIVILEGES IN SCHEMA staging GRANT USAGE, SELECT ON SEQUENCES TO NEWUSER;

GRANT USAGE ON SCHEMA zoho TO NEWUSER;
GRANT SELECT ON ALL TABLES IN SCHEMA zoho TO NEWUSER;
ALTER DEFAULT PRIVILEGES IN SCHEMA zoho GRANT SELECT ON TABLES TO NEWUSER;
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA zoho TO NEWUSER;
ALTER DEFAULT PRIVILEGES IN SCHEMA zoho GRANT USAGE, SELECT ON SEQUENCES TO NEWUSER;