Don't you speak portuguese? Translate this site with Google Translator

Pensamento do Dia

Quereis ser felizes por um momento? Vingai - vos. Quereis ser felizes para sempre? Perdoai. (Lacordaire)

PostgreSQL Resumo

Resumo de uso do PostgreSQL

apt-get update
apt-get install postgresql postgresql-doc postgresql-9.5-slony1 postgresql-9.5-postgis

sudo su

su - postgresql

psql

Permitir Acesso somente Local

Para permitir que aplicativos e sites criados com o PHP tenham acesso através de uma conexão onde usam 'host=localhost', ou seja, local, devemos executar como root.


Criar bancos
Criar usuários com direitos somente ao banco
Cada site deve ter um usuário exclusivo e um banco onde tem plenos poderes.


CRIAR MAIS DOIS USUÁRIOS
Criar usuários que não podem criar usuários, bancos nem roles

su - postgres
createuser ribafs
createuser joao

Alterar a senha dentro do SGBD
psql
ALTER USER postgres WITH PASSWORD 'senha';
\q para sair

cp /etc/postgresql/9.1/main/postgresql.conf /etc/postgresql/9.1/main/postgresql.confCOP
nano /etc/postgresql/9.1/main/postgresql.conf

listen_addresses = '*' (Escutar todas os IPs. Controlar no pg_hba.conf)


Neste arquivo (pg_hba.conf) você consegue restringir o acesso ao seu banco de dados por IP, por usuário, por tipo de senha, etc.

cp /etc/postgresql/9.1/main/pg_hba.conf /etc/postgresql/9.1/main/pg_hba.confCOP
nano /etc/postgresql/9.1/main/pg_hba.conf

Liberar o IP do sysadmin (10.40.0.103)

# Database administrative login by UNIX sockets
local all postgres ident (Usuário postgres usa a mesma senha do SO)

# TYPE DATABASE USER CIDR-ADDRESS METHOD

# "local" is for Unix domain socket connections only
local all all ident
# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 10.40.0.133/32 md5

Toda uma rede:
host all all 10.0.0.0/24 md5
exit

/etc/init.d/postgresql restart

Para não atribuir senha para o postgres, usando somente através do root podemos usar:
su postgres -c psql postgres

Alguns scripts em
/usr/share/postgresql/8.4/

Uso Remoto do PostgreSQL

Acesso remoto do IP 192.168.1.67
No postgresql.conf listen_addresses deve estar com '*'

Alterar o pg_hba.conf na linha do IP para trust
host all all 192.168.1.67/32 md5

Para toda a rede:
host all all 192.168.1.0/24 md5

Restartar
/etc/init.d/postgresql restart

Acessar com:
psql -h IP -U usuario -d banco

ou
psql -h IP -U usuario

Listar bancos remotamente
psql -l -h 192.168.1.12 -U postgres

Ajuda
psql --help


Backup local e restore remoto
pg_dump banco | psql -h hostname banco -U postgres

pg_restore apoena -f


Máscara Explicada

Apenas para iluminar um pouco, aquele número que vem depois da barra "/"
significa o número de bits que ele vai utilizar na mascara. Vejamos.

Suponha que voce deixe 189.0.0.0/24, o que vai acontecer?

1) Voce vai tentar conectar no IP do seu servidor a partir de seu IP de
origem IP
2) Seu servidor vai pegar o seu IP de origem e fazer um calculo de
mascara usando 24 bits, numa comparação XOR bit-a-bit que vai resultar
em 189.22.33.0
3) Ele vai pegar o resultado do calculo acima e comparar com seu arquivo
e vai identificar que 189.22.33.0 NÃO É IGUAL A 189.0.0.0.

Portanto você tem que utilizar 189.0.0.0/8, pois assim ele vai pegar o
seu IP IP, vai fazer uma comparacao XOR bit-a-bit e vai ter
como resultado 189.0.0.0, com esse resultado ele vai comprar com o
189.0.0.0 e vai reconhecer a IGUALDADE entre eles e vai aceitar.

Em resumo.

IP/8 => IP/255.0.0.0 = 192.0.0.0
IP/16 => IP/255.255.0.0 = 192.168.0.0
IP/24 => IP/255.255.255.0 = 192.168.1.0
IP/32 => IP/255.255.255.255 = 192.168.1.12

Outras mascaras são possíveis através de deslocamento de bit do parte da
rede para o host, obtendo-se sub-redes, mas ai ja acabamos fungindo do
escopo da lista.
--
Dickson S. Guedes


Criar Usuários com privilégios Restritos

Permitir Acesso somente Local
Para permitir que aplicativos e sites criados com o PHP tenham acesso através de uma conexão onde usam 'host=localhost', ou seja, local, devemos executar como root.

Neste arquivo (pg_hba.conf) você consegue restringir o acesso ao seu banco de dados por IP, por usuário, por tipo de senha, etc.

cp /etc/postgresql/8.4/main/pg_hba.conf /etc/postgresql/8.4/main/pg_hba.confCOP
nano /etc/postgresql/8.4/main/pg_hba.conf

Liberar o IP do servidor WEB (10.10.0.102) e do servidor de Email (10.10.0.103)

# Database administrative login by UNIX sockets
local all postgres ident (Usuário postgres usa a mesma senha do SO)

# TYPE DATABASE USER CIDR-ADDRESS METHOD

# "local" is for Unix domain socket connections only
local all all ident
# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 10.10.0.102/32 md5
#host all all 10.10.0.103/32 md5

Toda uma rede:
host all all 10.0.0.0/24 md5
exit

/etc/init.d/postgresql restart

Comments fornecido por CComment

Novo Testamento

Para que a recebais no Senhor, como convém aos santos, e a ajudeis em qualquer coisa que de vós necessitar; porque tem hospedado a muitos, como também a mim mesmo.
(Rm, 16:2)

Rotas no Mapa do Google

© 2015 Ribamar FS. All Rights Reserved. Designed By JoomShaper