PostgreSQL: a função não tem permissão para efetuar login


136

Estou com problemas para conectar-me ao meu próprio banco de dados do postgres em um servidor local. Pesquisei alguns problemas semelhantes no Google e criei este manual https://help.ubuntu.com/stable/serverguide/postgresql.html

tão:

pg_hba.conf diz:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 trust

então eu crio um usuário e atribuo uma senha para ele:

postgres=# create role asunotest;
CREATE ROLE
postgres=# alter role asunotest with encrypted password '1234';
ALTER ROLE

mas não me deixa entrar:

-bash-4.2$ psql -h 127.0.0.1 -U asunotest
Password for user asunotest: 1234
psql: FATAL:  role "asunotest" is not permitted to log in

qual poderia ser o problema?

Respostas:


289

A função que você criou não tem permissão para efetuar login. Você precisa dar permissão à função para fazer login.

Uma maneira de fazer isso é fazer login como postgresusuário e atualizar a função:

psql -U postgres

Depois de fazer login, digite:

ALTER ROLE "asunotest" WITH LOGIN;

Aqui está a documentação http://www.postgresql.org/docs/9.0/static/sql-alterrole.html


2
Como não posso psql, como posso alterar o papel?
Romulus Urakagi Ts'ai

2
@ RomulusUrakagiTs'ai, você deve entrar como um usuário do postgres (sudo -u postgres psql postgres) #
Mi Ka

9
CREATE ROLE blog WITH
  LOGIN
  SUPERUSER
  INHERIT
  CREATEDB
  CREATEROLE
  REPLICATION;

COMMENT ON ROLE blog IS 'Test';

0

Usando o pgadmin4 :

  1. Selecionar funções no menu lateral
  2. Selecione propriedades no painel.
  3. Clique em Editar e selecione privilégios

Agora, você pode ativar ou desativar o login, funções e outras opções


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.