2017-06-08 1 views
3

Also habe ich einen Benutzer ‚Papierkram‘ mit einer Datenbank mit dem gleichen NamenPostgres Benutzer mit irgendwelchen oder kein Passwort einloggen

postgres=# create role paperwork; 
postgres=# create database paperwork; 
postgres=# grant all privileges on database paperwork to paperwork; 
postgres=# ALTER ROLE paperwork WITH LOGIN; 
postgres=# ALTER ROLE paperwork WITH PASSWORD 'paperwork'; 

Aber es immer noch lässt mich als Papierkram ohne Passwort einloggen aufgerufen

[###@EMOO modules]$ psql --username=paperwork --host=localhost 
psql (9.6.3) 
Type "help" for help. 

paperwork=> \q 

und wenn ich es erzwingen, ein Passwort zu verwenden, wird jedes Passwort akzeptiert einschließlich leeres Kennwort:

[###@EMOO modules]$ psql --username=paperwork --host=localhost --password 
Password for user paperwork: 
psql (9.6.3) 
Type "help" for help. 

W Wenn ich pgadmin3 öffne und auf den Benutzer "Papierkram" klicke, scheint es ein verschlüsseltes Passwort zu haben.

-- Role: paperwork 

-- DROP ROLE paperwork; 

CREATE ROLE paperwork LOGIN 
    ENCRYPTED PASSWORD 'md585ff97314dbeb9953b989fd363a8e96f' 
    NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION; 

Auch wenn ich pgadmin3 öffne es fragt mich nach dem Postgres Passwort, aber auch hier wird alles für das Postgres Passwort akzeptieren. (und ich erinnere mich, das postgres-Passwort bei der Installation von Postgres eingestellt zu haben) Wie mache ich es so, dass Sie das richtige Passwort für die Anmeldung benötigen? Oder gibt es hier einen Zusammenhang, den ich völlig vermisse? . . . wie Passwörter werden nur für Remote-Logins oder etwas Seltsames benötigt. Vielen Dank.

EDIT: Ich habe keine /usr/share/postgresql/pg_hba.conf (EDIT: eigentlich habe ich kann ich es einfach nicht finden, weil ich nicht sudo auf dem „lokalisiert“ Befehl wurde) ich habe ein aus der Beispieldatei: /usr/share/postgresql/pg_hba.conf.sample

diese Idee erhielt von hier: http://blog.mattsch.com/2012/05/19/postgresql-accepts-any-or-no-password-when-connecting/ ich habe versucht, so dass es mD5-Authentifizierung, aber ich habe immer noch das gleiche Problem. Was habe ich versucht, ist unten aus der Datei /usr/share/postgresql/pg_hba.conf

@[email protected] 

# TYPE DATABASE  USER   ADDRESS     METHOD 

@[email protected]# "local" is for Unix domain socket connections only 
@[email protected] all    all          @[email protected] 
# IPv4 local connections: 
host all    all    127.0.0.1/32   md5 
# IPv6 local connections: 
host all    all    ::1/128     md5 
# Allow replication connections from localhost, by a user with the 
# replication privilege. 

@[email protected]#local replication  @[email protected] @[email protected] 
#host replication  @[email protected]  127.0.0.1/32 @[email protected] 
#host replication  @[email protected]  ::1/128 @[email protected] 

ich neu gestartet postgresql dann aber immer noch das gleiche Problem haben.

EDIT: Danke Abelisto. Der Befehl "show config_file" (nachdem ich mich mit pgsql angemeldet habe) bringt mich auf den richtigen Weg. Es ist mir nicht aufgefallen, dass "locate pg_hba.conf" von der Kommandozeile meines Linux-Benutzers aus ausgeführt wurde und keine Berechtigung hatte, die eigentliche Konfigurationsdatei im postgres-Verzeichnis zu finden:/var/lib/postgres/data/Der "Papierkram" "jetzt wird mit dem falschen Passwort abgelehnt, nachdem ich geändert‚Vertrauen‘auf‚md5‘in /var/lib/postgres/data/pg_hba.conf auf diesen Linien zu machen:

# TYPE DATABASE  USER   ADDRESS     METHOD 

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

wahrscheinlich markiert gelöst wird in ein bisschen will nur ein paar Dinge testen.

+1

In der das richtige Passwort nicht liefern 'psql' führe' show config_file; 'aus um herauszufinden, wo deine Konfiguration ist. – Abelisto

+0

Stack Overflow ist eine Website für Programmier- und Entwicklungsfragen. Diese Frage scheint off-topic zu sein, weil es nicht um Programmierung oder Entwicklung geht. Siehe [Welche Themen kann ich hier fragen?] (Http://stackoverflow.com/help/on-topic) in der Hilfe. Vielleicht [Super User] (http://superuser.com/) oder [Datenbankadministratoren Stack Exchange] (http://dba.stackexchange.com/) wäre ein besserer Ort, um zu fragen. – jww

+0

oh entschuldigung, was soll ich tun? überlasse ich das hier? oder sollte ich es löschen und erneut auf einem Datenbankstapel austauschen? – Zendasi

Antwort

1

TLDR für meine Herkunft Beitrag:

1 stellen Sie sicher, die Postgres-Passwort auf etwas gesetzt haben Sie wissen:

[###@EMOO ~]$ psql -U postgres 
psql (9.6.3) 
Type "help" for help. 

postgres=# ALTER ROLE postgres WITH PASSWORD 'postgres password'; 

2 finden Sie pg_hba.conf

sudo updatedb 
sudo locate pg_hba.conf 

3 ersetzen "Vertraue" mit "md5" in deinem pg_hba.conf

4 Neustart postgresql:

sudo systemctl restart postgresql 

5 Login als Postgres und was Benutzer-Passwörter müssen Sie ändern, werden die Nutzer nun abgelehnt werden, wenn sie

psql -U postgres 
Verwandte Themen