
Estou seguindo este tutorial e, estando logado como postgres, executo:
createuser --interactive
nome fornecido e superusuário escolhido
então:
createdb dogspot
mas ao tentar
sudo -i -u dogspot
Eu recebo:
postgres@ip-172-31-12-126:/home/ubuntu$ sudo -i -u dogspot
sudo: unknown user: dogspot
sudo: unable to initialize policy plugin
mas o usuário existe com certeza, pois ao tentar criar mais uma vez o usuário aparece um prompt sobre um já existente. Algumas dicas de como fazer isso corretamente serão apreciadas.
versão do banco de dados:
psql (PostgreSQL) 9.3.4
versão do sistema operacional:
Ubuntu 14.04 LTS
ATUALIZAR:
parece que tudo era necessário para criar o usuário Linux antes com o nome correspondente:
sudo useradd -d /home/dogspot -m dogspot
sudo passwd dogspot
Responder1
Você está confundindo usuários do PostgreSQL e usuários do sistema operacional.
Um usuário PostgreSQL pode existir sem um usuário de sistema operacional correspondente.
Por padrão, as conexões usam peer
autenticação, onde você deve estar executando como o usuário do sistema operacional com o mesmo nome do usuário PostgreSQL ao qual você está tentando se conectar.Você pode mudar pg_hba.conf
isso, para todos os usuários ou apenas para alguns usuários/bancos de dados. Para mais detalhes veja oautenticação de clientecapítulo.