No meu laptop de desenvolvimento (Ubuntu linux), tenho uma conta do sistema operacional postgres , que possui a instalação do Postgres.
Quando eu quiser executar qualquer atividade postgres, criar/eliminar bancos de dados, etc., devo primeiro acessar a conta postgres.
$ sudo su postgres
Como posso alterar minha própria conta de sistema operacional para ter os privilégios de nível de sistema operacional de postgres , para que não precise su ?
Crie o usuário no sistema operacional
Dê aos usuários locais acesso ao postgres
Você precisa localizar o diretório de dados para a instalação do postgresql, ou seja, onde você criou os arquivos do banco de dados. Eles geralmente estão localizados em
/var/lib/pgsql/data
. O valor para sua instalação pode estar disponível na variável de ambiente$PGDATA
se você fizer alguma alteração, será necessário recarregar o postgres
Ou como postgres
Agora conecte-se ao psql como postgres
Teste a conexão
Você também pode usar
pg_ident.conf
para mapear um usuário do sistema para um usuário do postgresql.1. Edite pg_ident.conf
Por exemplo, para permitir que o usuário "root" seja executado
psql
como o usuário "postgres" (psql -U postgres ...
), mapeie-opg_ident.conf
adicionando uma linha como2. Edite pg_hba.conf
Em seguida, em
pg_hba.conf
, altere esta linha:para adicionar "map=root2pg" no final:
3. Reinicie o postgresql
Você pode usar qualquer string que desejar para o nome do mapa (aqui "root2pg") e permitir outros usuários além do root (a 2ª coluna em pg_ident.conf)
Para tornar isso muito genérico e fácil de copiar e colar em diferentes máquinas que podem ter várias versões diferentes do postgresql, você pode fazer isso com algo como:
(O uso de printf ao invés de echo é apenas para alinhar com as colunas existentes no padrão pg_ident.conf)