# PostgreSQL Client Authentication Configuration File
# ===================================================
# Modified for Magnasync Genesis database

# $Id: postgresql_setup.py,v 1.2 2005/12/21 03:44:11 mmitchell Exp $

# Ownership of this file should be root:postgres
# Permissions should be 0640  i.e. -rw-r-----

# Refer to the PostgreSQL Administrator's Guide, chapter "Client
# Authentication" for a complete description.  A short synopsis
# follows.
#
# This file controls: which hosts are allowed to connect, how clients
# are authenticated, which PostgreSQL user names they can use, which
# databases they can access.  Records take one of seven forms:
#
# local      DATABASE  USER  METHOD  [OPTION]
# host       DATABASE  USER  IP-ADDRESS  IP-MASK   METHOD  [OPTION]
# hostssl    DATABASE  USER  IP-ADDRESS  IP-MASK   METHOD  [OPTION]
# hostnossl  DATABASE  USER  IP-ADDRESS  IP-MASK   METHOD  [OPTION]
# host       DATABASE  USER  IP-ADDRESS/CIDR-MASK  METHOD  [OPTION]
# hostssl    DATABASE  USER  IP-ADDRESS/CIDR-MASK  METHOD  [OPTION]
# hostnossl  DATABASE  USER  IP-ADDRESS/CIDR-MASK  METHOD  [OPTION]
#
# (The uppercase quantities should be replaced by actual values.)
# The first field is the connection type: "local" is a Unix-domain socket,
# "host" is either a plain or SSL-encrypted TCP/IP socket, "hostssl" is an
# SSL-encrypted TCP/IP socket, and "hostnossl" is a plain TCP/IP socket.
# DATABASE can be "all", "sameuser", "samegroup", a database name (or
# a comma-separated list thereof), or a file name prefixed with "@".
# USER can be "all", an actual user name or a group name prefixed with
# "+", an include file prefixed with "@" or a list containing either.
# IP-ADDRESS and IP-MASK specify the set of hosts the record matches.
# CIDR-MASK is an integer between 0 and 32 (IPv6) or 128(IPv6)
# inclusive, that specifies the number of significant bits in the
# mask, so an IPv4 CIDR-MASK of 8 is equivalent to an IP-MASK of
# 255.0.0.0, and an IPv6 CIDR-MASK of 64 is equivalent to an IP-MASK
# of ffff:ffff:ffff:ffff::. METHOD can be "trust", "reject", "md5",
# "crypt", "password", "krb5", "ident", or "pam".  Note that
# "password" uses clear-text passwords; "md5" is preferred for
# encrypted passwords.  OPTION is the ident map or the name of the PAM
# service.
#
# INCLUDE FILES:
# If you use include files for users and/or databases (see PostgreSQL
# documentation, section 19.1), these files must be placed in the
# database directory. Usually this is /var/lib/postgres/data/, but
# that can be changed in /etc/postgresql/postmaster.conf with the
# POSTGRES_DATA variable. Putting them in /etc/postgresql/ will NOT
# work since the configuration files are only symlinked from
# POSTGRES_DATA.
#
# This file is read on server startup and when the postmaster receives
# a SIGHUP signal.  If you edit the file on a running system, you have
# to SIGHUP the postmaster for the changes to take effect, or use
# "pg_ctl reload".
#
# Upstream default configuration
#
# The following configuration is the upstream default, which allows
# unrestricted access to amy database by any user on the local machine.
# 
# TYPE  DATABASE    USER        IP-ADDRESS        IP-MASK           METHOD
#
#local   all         all                                             trust
# IPv4-style local connections:
#host    all         all         127.0.0.1         255.255.255.255   trust
# IPv6-style local connections:
#
# Put your actual configuration here
# ----------------------------------
#
# This default configuration allows any local user to connect as himself
# without a password, either through a Unix socket or through TCP/IP; users
# on other machines are denied access.
#
# If you want to allow non-local connections, you need to add more
# "host" records before the final line that rejects all TCP/IP connections.
# Also, remember TCP/IP connections are only enabled if you enable
# "tcpip_socket" in /etc/postgresql/postgresql.conf.
#
# DO NOT DISABLE!
# If you change this first entry you will need to make sure the postgres user
# can access the database using some other method.  The postgres user needs
# non-interactive access to all databases during automatic maintenance
# (see the vacuum command and the /usr/lib/postgresql/bin/do.maintenance
# script).
#
# TYPE  DATABASE    USER        IP-ADDRESS        IP-MASK           METHOD
# Database administrative login by UNIX sockets
local   all         postgres					   trust	                                                               
host   all         gowri	0.0.0.0		0.0.0.0		   trust
local   all         gowri					   md5	                                                               
#======== begin Genesis database ==========
# All remote connections must use SSL.
#
# creatorgenesis can only connect from local, needs pg password
host   gen3user    creatorgenesis 0.0.0.0	0.0.0.0             trust 
host   gen3logger  creatorgenesis 0.0.0.0	0.0.0.0     	    trust
local   gen3user    creatorgenesis                                  trust 
local   gen3logger  creatorgenesis                                  trust

#
# All IPv4 connections from external must use SSL and MD5 password authentication.
#
# genserver user explicit access to gen3logger, from any IP address, require pg password
# genserver is for use by Genesis daemon software
host    gen3logger  genserver   127.0.0.0         255.0.0.0         md5
hostssl gen3logger  genserver   0.0.0.0           0.0.0.0           md5
local   gen3logger  genserver                                       md5
# genconfig user explicit access to gen3logger, from any IP address, require pg password
# genconfig is for use by Genesis database config software utilities
host    gen3logger  genconfig   127.0.0.0         255.0.0.0         md5
hostssl gen3logger  genconfig   0.0.0.0           0.0.0.0           md5
local   gen3logger  genconfig                                       md5
#
# Allow access to all users in magnagroup, from anywhere, require pg password
# magnagroup is only for Magnasync engineers and service personnel
host    gen3logger  +magnagroup  127.0.0.0        255.0.0.0         md5
hostssl gen3logger  +magnagroup  0.0.0.0          0.0.0.0           md5
local   gen3logger  +magnagroup                                     md5
host    gen3user    +magnagroup  127.0.0.0        255.0.0.0         md5
hostssl gen3user    +magnagroup  0.0.0.0          0.0.0.0           md5
local   gen3user    +magnagroup                                     md5
#
# genuseradmin user explicit access to gen3logger, from anywhere, require pg password
# genuseradmin is for use by Genesis client software which has admin functionality
host    gen3logger    genuseradmin 127.0.0.0        255.0.0.0         md5
hostssl gen3logger    genuseradmin 0.0.0.0          0.0.0.0           md5
local   gen3logger    genuseradmin                                    md5
#
# genuser group gets access to gen3logger, from anywhere, require pg password
# genuser is for use by Genesis client software, e.g. the grid client
host    gen3logger    +genusergroup 127.0.0.0       255.0.0.0         md5
hostssl gen3logger    +genusergroup 0.0.0.0         0.0.0.0           md5
local   gen3logger    +genusergroup                                   md5
#
# genuseradmin user explicit access to gen3user, from anywhere, require pg password
host    gen3user    genuseradmin 127.0.0.0        255.0.0.0         md5
hostssl gen3user    genuseradmin 0.0.0.0          0.0.0.0           md5
local   gen3user    genuseradmin                                    md5
#
# genuser group gets access to gen3user, from anywhere, require pg password
host    gen3user    +genusergroup 127.0.0.0       255.0.0.0         md5
hostssl gen3user    +genusergroup 0.0.0.0         0.0.0.0           md5
local   gen3user    +genusergroup                                   md5
#
#======== end Genesis database ==========

# All other connections by UNIX sockets
local   all         all                                             ident sameuser
#
# All IPv4 connections from localhost
host    all         all         127.0.0.1         255.255.255.255   ident sameuser
#
# All IPv6 localhost connections
host    all         all         ::1  ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff ident sameuser
host    all         all         ::ffff:127.0.0.1/128                ident sameuser
#
# reject all other connection attempts
host    all         all         0.0.0.0           0.0.0.0           reject
