Como criar um banco de dados a partir do usuário do psql (não do usuário linux)

0

Eu estudei alguns PostgreSQL. No princípio eu fui ensinar a criar um usuário do postgress com o mesmo nome do usuário do meu linux.

Agora, quero tentar criar um aplicativo e, por esse motivo, gostaria de criar um novo usuário associado ao banco de dados do aplicativo. Como fazer isso?

Eu tentei isso:

  1. sudo -u postgres psql postgres
  2. postgres = # cria usuário myuser com senha 'myuserpassword' createdb; CRIAR PAPEL

Então eu tento acessar o template1 do banco de dados com o usuário recém criado usando:

psql template1 myuser

Quando eu digito psql template1 e depois tab, eu não entendo o usuário "myuser" e não sei porque.

Obrigado pela ajuda

    
por Federico Ponzi 20.06.2014 / 19:33

1 resposta

1

When i type psql template1 and then tab, i don't get the user "myuser" and don't know why.

É o preenchimento programável que está em jogo aqui. Parece que, para psql , a aba não sugere uma lista de nomes de usuários na linha de comando quando o cursor está após um nome de banco de dados. No entanto, se produz essa lista, quando o cursor estiver atrás de -U .

Não está claro como é complicado criar um banco de dados.

Supondo que você possa entrar no psql com psql template1 myuser , apenas emita o comando SQL

CREATE DATABASE dbname;

Se essa invocação do psql falhar, provavelmente é porque a política de pg_hba.conf para a conexão de soquete do domínio Unix é peer . Haverá uma mensagem de erro explícita dizendo isso.

Nesse caso, use psql -U username -h localhost -d template1

Outro método é criar o banco de dados a partir de uma conta de superusuário (normalmente postgres ) exatamente como você criou o usuário e deixar a propriedade desse usuário ( OWNER option de CREATE DATABASE ).

    
por 21.06.2014 / 00:52