Skip to main content

Gerenciar usuários e permissões

Antes de começar a gerenciar usuários e permissões no PostgreSQL, é importante garantir que você tenha acesso a um banco de dados PostgreSQL e a uma Virtual Machine (VM) provisionados na mesma região disponível na Magalu Cloud. Como o endereço do banco PostgreSQL pode ser privado, utilize a VM como "jump host" para conectar-se via psql. Manter ambos na mesma região minimiza latência, evita custos adicionais de tráfego entre regiões e melhora a performance.

1. Criar um novo usuário

Conectado à instância (por exemplo, via psql), execute:

CREATE USER newuser WITH PASSWORD 'password';
  • newuser: nome do usuário a ser criado.
  • password: senha do novo usuário.

Observação: a configuração de origem permitida (hosts) é feita no arquivo pg_hba.conf, não no comando SQL.

Para conceder acesso total a um banco de dados:

GRANT ALL PRIVILEGES ON DATABASE database_name TO newuser;
  • database_name: nome do banco de dados.
  • newuser: usuário alvo.

2. Listar usuários existentes

Para ver todos os roles definidos no servidor:

SELECT rolname FROM pg_roles;

3. Modificar permissões de usuário

Conceder privilégios em tabelas existentes

GRANT SELECT, INSERT, UPDATE ON ALL TABLES IN SCHEMA public TO newuser;

Garantir privilégios para futuras tabelas

ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT SELECT, INSERT, UPDATE ON TABLES TO newuser;

Revogar privilégios

REVOKE DELETE ON ALL TABLES IN SCHEMA public FROM newuser;

4. Excluir um usuário

Para remover um role:

DROP ROLE newuser;

Nota: DROP USER é um alias de DROP ROLE em versões compatíveis.