Aprendendo a criar e gerenciar usuários no PostgreSQL (Primeiros Passos)

Fri 12 October 2012
By jesuejunior

Confesso que logo de cara quando comecei a usar PSQL fiquei meio perdido (usava MySQL), então estou escrevendo essa dica para eu relembrar.

Criando seu 1° super usuário no PostgreSQL. Depois de instalado seu SGBD postgres, como criar seu 1° usuário? Qual a senha de root(postgres)? Qual a senha padrão?

Esta dica é para iniciantes. Simples, na máquina com o banco instalado siga os seguintes passos, existem varias maneiras de fazer isso, e essa foi a maneira mais básica/simples que eu achei para explicar.

Logue-se como root, digite "su root" ou "sudo -i" ou "sudo su" (no terminal a mensagem padrão deve terminar com #). Entre como usuário postgres com o comando:

~# su postgres

Conecte ao Shell do postgres (por padrão você se conecta ao DB postgres) comando:

~$ psql

Agora deve aparecer uma frase de boas vindas (Bem vindo ao psql…) e você está no terminal do posgres, note que o shell mudou antes era root@pc # agora ficou postgres=# Isso quer dizer que agora você está no shell do PostgreSQL conectado no banco postgres.

Para criar nosso superuser, digite o comando:

postgres=# CREATE USER nomedousuario SUPERUSER INHERIT CREATEDB CREATEROLE;

Depois temos que alterar a senha, então digite  o comando:

postgres=# ALTER USER nomedousuario PASSWORD 'senha';

Olha que maravilha! Super Usuário criado.

Comandos básicos, para você que está acostumado com o golfinho, o Mamute é bem diferente.

# psql
\l => "Lista todos os bancos de dados."
\c nome-banco  => "Conecta no banco *nome-banco*"
\d  => "Lista as tabelas do banco de dados conectado."
\d  table-name => "Descrimina as colunas da tabela."
\dg => "Lista usuários existentes, as permissões e grupos que o usuário pertence."
\password [usuario] => "Troca a senha do usuário com segurança, ou seja você não vê a senha que foi digitada e não é possível ver através do histórico de comandos"
select * from table-name;  => "Lista o conteúdo das tabelas. (o.O)"

Poderíamos usar essas opções da mesma forma, mas criando um usuário comum e colocando as permissões mais restritivas.

postgres=# CREATE USER jesuejunior WITH PASSWORD 'supersecret';

Para conceder a permissão de executar somente Update ou Select ou Insert ou Delete ou Role(dono)

postgres=# GRANT UPDATE ON nomedatabela to jesuejunior
postgres=# GRANT SELECT ON nomedatabela to jesuejunior
postgres=# GRANT INSERT ON nomedatabela to jesuejunior
postgres=# GRANT DELETE ON nomedatabela to jesuejunior
postgres=# GRANT RULE ON nomedatabela to jesuejunior

E para dar permissão para fazer todas as operações.

postgres=# GRANT ALL PRIVILEGES ON nomedatabela to public

Partindo do principio que você já está conectado com o usuário postgres.

Para apagar um usuário:

postgres=# dropuser jesuejunior

Bom isso já me ajudou a ganhar muito tempo, e espero que ajude outras pessoas.

Em breve estarei postando sobre gerenciar databases.