Você está recebendo este erro porque (como você supôs corretamente) foouser
não é um superusuário e não tem o privilégio CREATE DATABASE
.
Você pode criar o banco de dados como seu superusuário postgres
, com foouser
como proprietário, que é provavelmente a opção mais sensata.
Alternativamente, você pode tornar foouser
um superusuário DB (definitivamente não recomendado) ou conceder a esse usuário o privilégio CREATE DATABASE
(também não é realmente recomendado - seus usuários individuais do banco de dados devem ser usuários comuns comuns, Proprietário do banco de dados é o nível mais alto de privilégio deveria ter.)
Geralmente, não aconselho usar as ferramentas de linha de comando do Postgres. Não há nada de errado com eles, mas é preferível usar a linha de comando SQL para interagir com o banco de dados, na minha opinião. A documentação sobre o comando CREATE DATABASE
SQL é, IMHO, melhor que a documentação para o equivalente da linha de comando também.
O equivalente em SQL para o que você está fazendo no comando seria:
CREATE DATABASE foodatabase WITH OWNER foouser ENCODING 'utf8' TEMPLATE template0;