Manipulando pg_hba.conf

Neste tópico vamos descrever o funcionamento do arquivo pg_hba.conf que determina qual o usuário e de qual IP o banco poder ser acessado.

O arquivo pg_hba.conf contem as seguintes linhas:


# PostgreSQL Client Authentication Configuration File

# ===================================================

# 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 these forms:

# local DATABASE USER METHOD [OPTION]

# host DATABASE USER CIDR-ADDRESS METHOD [OPTION]

# hostssl DATABASE USER CIDR-ADDRESS METHOD [OPTION]

# hostnossl DATABASE USER CIDR-ADDRESS METHOD [OPTION]

#

# (The uppercase items must 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.

#

# USER can be "all", a user name, a group name prefixed with "+", or

# a comma-separated list thereof. In both the DATABASE and USER fields

# you can also write a file name prefixed with "@" to include names from

# a separate file.

#

# CIDR-ADDRESS specifies the set of hosts the record matches.

# It is made up of an IP address and a CIDR mask that is an integer

# (between 0 and 32 (IPv6) or 128(IPv6) inclusive) that specifies

# the number of significant bits in the mask. Alternatively, you can write

# an IP address and netmask in separate columns to specify the set of hosts.

#

# METHOD can be "trust", "reject", "md5", "crypt", "password",

# "krb4", "krb5", "ident", or "pam". Note that "password" sends passwords

# in clear text; "md5" is preferred since it sends encrypted passwords.

#

# OPTION is the ident map or the name of the PAM service, depending on METHOD.

#

# Database and user names containing spaces, commas, quotes and other special

# characters must be quoted. Quoting one of the keywords "all", "sameuser" or

# "samegroup" makes the name lose its special character, and just match a

# database or username with that name.

#

# 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. You can use

# "pg_ctl reload" to do that.


# Put your actual configuration here

# ----------------------------------

#

# If you want to allow non-local connections, you need to add more

# "host" records. In that case you will also need to make PostgreSQL listen

# on a non-local interface via the listen_addresses configuration parameter,

# or via the -i or -h command line switches.

#

# TYPE DATABASE USER CIDR-ADDRESS METHOD

# IPv4 local connections:

host all all 127.0.0.1/32 md5

# IPv6 local connections:

# host all all ::1/128 md5


O Postgresql quando identifica o caractere “#” no inicio da linha ele considera toda a linha como comentário.

Os parâmetros existentes no arquivo pg_hba.conf são os seguintes:


TYPE ? Define o tipo de acesso

DATABASE ? O nome do Database que esta sendo configurado

USER ? O nome dos usuário que podem acessar o Database

CIDR-ADDRESS? O(s) IP(s) das máquinas que podem acessar o Banco

METHOD ? Método de acesso


Explorando os Parâmetros:


TYPE;

Este parâmetro define se o acesso vai ser feito pela Internet ou rede local.

Host – O banco é conectado pela Internet.

Local – O banco é conectado por uma rede local


DATA BASE;

Define o banco de dados em que se aplica os parâmetros.


All – todos os bancos

<nome do banco> - Um banco específico


USER

Define os usuários em que se aplica os parâmetros


CIDR_ADDRESS;

Define os Ips em que se aplica os parâmetros;

127.0.0.1/32 – Localhost

Propriedades do parâmetro:

A.B.C.D/32 – Considera todo as classes do IP. Ex: 10.4.224.104 (Somente a maquina com o IP 1.4.224.104 poderá acessar o banco.

A.B.C..D/24 – Só considera os três primeiros parâmetros do IP. Ex 10.4.224.- (Qualquer máquina com o IP de inicio 10.4.224 poderá acessar o banco)

A.B.C..D/16 – Só considera os três primeiros parâmetros do IP. Ex 10.4.-.- (Qualquer máquina com o IP de inicio 10.4.poderá acessar o banco)

A.B.C..D/8’ – Só considera os três primeiros parâmetros do IP. Ex 10.4.-.- (Qualquer máquina com o IP de inicio 10.4.poderá acessar o banco)


METHOD

Define como será feita a ligação com o banco;


Reject – nega o IP referido

Md5 – só conecta ao banco mediante senha

Trust – não pede senha


Um Abraço e até o próximo artigo


JJ Araujo