A administração do PostgreSQL [1] requer alguns cuidados com a segurança. Um delas é somente permitir a conexão por certos usuários e a partir de certos hosts na rede.
Bom hoje vou explicar o que eu faço para criar um novo super usuário no PostgreSQL quando faço uma nova instalação em sistemas Debian. Este procedimento normalmente é de suma importância para conseguimos conectar remotamente com o banco uma vez que por medidas de segurança alguns gerenciadores do PostgreSQL, como o PHPPgAdmin [2], não permitem a conexão com o super usuário padrão (postgres).
Primeiramente devemos instalar o pacote do PostgreSQL:
root@srv:~# aptitude install postgresql-8.1
Depois assumimos o super usuário padrão do PostgreSQL, para criarmos um novo super usuário:
[root@srv:~] # su - postgres
[postgres@srv:~] $ createuser -P
Digite o nome da role a ser adicionada: pgmaster
Digite a senha para a nova role:
Digite-a novamente:
A nova role poderá criar um super-usuário? (s/n) s
CREATE ROLE
Podemos testar a criação do usuário da seguinte forma:
[postgres@srv:~] $ psql
postgres=# \du
Lista de roles
Nome da role | Super-usuário | Cria role | Cria BD | Conexões | Membro de
————–+—————+———–+———+———–+———–
pgmaster | sim | sim | sim | ilimitado |
postgres | sim | sim | sim | ilimitado |
(2 registros)postgres=# \q
Para liberar o acesso ao novo usuário basta incluir no arquivo /etc/postgresql/8.1/main/pg_hba.conf a seguinte linha:
“local all pgmaster md5″, isso já garante o acesso local, para outros tipos de acesso basta editar o arquivo da forma desejada.
Para um teste final recarregamos o servidor do PostgreSQL e conectamos com o novo usuário:
[root@srv /etc/init.d]# ./postgresql-8.1 force-reload
[root@srv /etc/init.d]# psql -U pgmaster template1
Senha para usuário pgmaster:
Agora uma pequena dica para quem precisa utilizar muito o PostgreSQL no bash, seja no prompt ou em algum shell-script e não querer ficar passando parâmetros de usuário e digitando a senha toda hora. Neste caso é só definir estes valores nas variáveis de ambiente especiais para o PostgreSQL, PGUSER e PGPASSWORD, use desta forma:
export PGPASSWORD=senha
export PGUSER=senha
É isso, espero que ajude alguém!
[1] - http://www.postgresql.org/
[2] - http://phppgadmin.sourceforge.net/









Envie um Comentário