Postgres felhasználói...

Sziasztok!

Ma vmiért 'megbutult' a PostgreSQL adatbázisom. Nem enged belépni külső felületről (pl: phpPgAdmin) és másik usernév alól sem (pl biboka helyett root vagy bármi más). A norm user alól azonban teljesen jól működik.

Beléptem,

>psql biboka

és átírtam a jelszót:

ALTER USER biboka UNENCRYPTED PASSWORD 'uj_jelszo';

de az új jelszóval sem működött sehonnan.

Az utóbbi napokban nem nagyon piszkáltam az adatbázist, ma d.e. még rendesen ment. Ami max befolyásolhatta az a PHP újrafordítása, habár ezt is kétlem. Találkozott már vki ilyennek? Tudtok rá vmi megoldást?

Előre is köszönöm!

Hozzászólások

- log mit ír? ha nem tapasztalsz semmit, akkor kapcsolj részletesebb naplózásra.
- pg_hba.conf rendben van? esetleg egy újraindítás a postmasternek?

Ezeket irogatta, miközben phpPgAdmin-ról próbáltam bejelentkezni:

2006-07-06 22:50:27 [27720] LOG: connection received: host=[local] port=
2006-07-06 22:50:27 [27720] FATAL: IDENT authentication failed for user "biboka"

Újraindítást próbáltam, nem segített.

A pg_hba.conf érdemleges része így néz ki:

# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD

local all postgres ident sameuser

local all all ident sameuser

host all all 127.0.0.1 255.255.255.255 ident sameuser

host all all ::1 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff ident sameuser

host all all ::ffff:127.0.0.1/128 ident sameuser

host all all 0.0.0.0 0.0.0.0 reject

Nem lehet, hogy a postmaster mogul hianyzik a -i kapcsolo?
(pl frissites, etc-update, egyebek)
---------------------
Ригидус а бетегадьбол

Köszi, kipróbáltam, de '-i'-vel sem megy. Lehet h az egészet fel kéne tornászni 8.1-esre, a jelenlegi verziója 7.4.7

Szerk.: így néz ki a log debug (5) módban (hátha vkinek ez többet mond):

2006-07-06 23:12:12 [27826] DEBUG: proc_exit(0)
2006-07-06 23:12:12 [27826] DEBUG: shmem_exit(0)
2006-07-06 23:12:12 [27826] DEBUG: exit(0)
2006-07-06 23:12:12 [27823] DEBUG: reaping dead processes
2006-07-06 23:12:17 [27823] DEBUG: forked new backend, pid=27828 socket=8
2006-07-06 23:12:17 [27828] LOG: connection received: host=[local] port=
2006-07-06 23:12:17 [27828] FATAL: IDENT authentication failed for user "biboka"
2006-07-06 23:12:17 [27828] DEBUG: proc_exit(0)
2006-07-06 23:12:17 [27828] DEBUG: shmem_exit(0)
2006-07-06 23:12:17 [27828] DEBUG: exit(0)
2006-07-06 23:12:17 [27823] DEBUG: reaping dead processes
2006-07-06 23:12:17 [27823] DEBUG: child process (PID 27828) exited with exit code 0

A UNIX user nem feltetel. A postgres szeparaltan kezeli a usereket a unix kornyezettol fuggetlenul. Nekem pl most van egy "drupal" userem es azon keresztul menedzselem a hozza tartozo adatbazist. :-)

Szerk: Egyebkent mar latom, hogy mi van. Amit a lenti threadben irtam az valszeg meg fogja oldani. Nincsen felveve neki a pg_hba.conf-ba a kulso gep es/vagy a "biboka" user mint megbizato forras. :-)

---------------------
Ригидус а бетегадьбол

"az ident sameuser azt jelenti, hogy az ident protokollall probalja kideriteni, hogy az adott username letezik-e local user-kent"
Az stimmel. :-) De itt szo nem volt a "sameuser" identifikaciorol, mivel a "gyari" postgres useren kivul mashol meg sem volt adva neki a pg_hba.conf-ban.

Az tiszta sor, hogy kesobb lehet szigoritani a bejelentkezeseket, de ez mar egy sokadlagos kerdes. Itt a hangsuly azon volt, hogy eloszor elinduljon. :-)

---------------------
Ригидус а бетегадьбол

;-) igaz, az utolsa sor elkerulte a figyelmemet...

host all all 0.0.0.0 0.0.0.0 reject.. De nem... bocs, nincs igazad! ha a logban azt mondja:
2006-07-06 22:50:27 [27720] LOG: connection received: host=[local] port=
2006-07-06 22:50:27 [27720] FATAL: IDENT authentication failed for user "biboka"
akkor 1. nem tavolrol probalkozott: connection received: host=[local] port=, raadasul ez UNIX socket-nak nez ki ;-) tehat teljesen local...
2. IDENT auth failed... tehat igenis az ident ment, es mivel az akkori config-ban nem volt mas csak sameuser, ezert bizony az.

Szoval igenis sameuser volt! Persze az -i nem valtoztat a dolgon, mivel localhost-rol probalkozik (legalabbis a logreszlet alapjan)

Zsiraf

Nem teljesen... a trust azt jelenti, hogy mindenfele auth nelkul beengedi... Az ident, meg azt jelenti, hogy azon a gepen, ahonnet csatlakozol, az usernevednek, annak kell lenni ami a map-file alapjan megfelel egy adott PG beli usernevnek... Ha sameuser map-ot adsz meg, akkor a client-server nevnek meg kell egyeznie... pl.

kliens: a user mondjuk biboka, es ident sameuser, akkor a szerveren kell lenni egy biboka usernek, es annak a user-nek a neveben fog belepni a PG-be... (ugyhogy valoszinu rosszat kerdeztem az elobb a kollegatol, az igazi kerdes nem az, hogy van-e biboka, hanem az, hogy az a process, ami be akart lepni, milyen user-e volt... gondolom nem biboka-e.)

Zsiraf

"Köszi, kipróbáltam, de '-i'-vel sem megy. Lehet h az egészet fel kéne tornászni 8.1-esre, a jelenlegi verziója 7.4.7"

Szvsz, tokmindegy. :-)
De probald ki ezt:

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

Nalam mukosik. A 10.0.0.13/8 helyere add meg a kulso gep ip cimet es a postmastert "-i"-vel inditsd mindenkeppen. :-)

---------------------
Ригидус а бетегадьбол

A felhasználó amivel beenged az superuser?
Megnézheted így (psql konzolon):
select * from pg_shadow;

A táblázatban az usesuper oszlopban kell lennie egy kis t-nek
Ha igen akkor dobd el a "használahatatlan" usert.
DROP xxxxxx;
Utána hozd létre újra jelszóval együtt.
CREATE USER xxxx PASSWORD yyyyyy;

Ha ez megvan és még mindig nem enged be akkor a pg_hba.confban van elbas*va vlmi.

--------------
Sok ember hord Superman-pizsamát. Superman Chuck Norris-pizsamát hord.

Nekem is hasonló gondom volt. Most beraktam MD5-re. Megy a dolog. Csak azt nem értem, hogy miért nem kellett használnom a crypt függvényt. A pg_connect-ben már benne van?

Előre is köszi a válaszokat

Addig csináltam a dolgokat, hogy nem enged be a postgressel md5-be, csak ha trust-n van a unix socket. Mit tudok ezzel kezdeni?

Hali,

Van egy új szerverem, csináltam bele usert, a usernek db-t. De a júzerrel nem tudok felületen át konnektálni. Gondoltam nézek egy kis logot. De a log sem az igazi, mert nem látom benne a sikertelen belépési kísérleteket. Sőt, még a konzolos sikereseket sem.

--- pg_hba.conf:
local adatbázisnév usernév password
host adatbazisnev usernev 127.0.0.1 255.255.255.255 password
(a konfig legvégén meg ott vannak a default dolgok)

--- postgresql.conf:
syslog = 2
syslog_facility = 'LOCAL0'
syslog_ident = 'postgres'
client_min_messages = log
log_min_messages = info
log_error_verbosity = verbose
log_min_error_statement = info

log_statement = true
log_timestamp = true
log_hostname = true

Még vmi: konzolban a "psql -U usernév adatbázisnév" jelszó megadása után beenged, de ha elhagyom az adatbázisnév paramétert, akkor IDENT auth failed-et kapok. Ezt sem egészen értem.

Hmm, jo lenne kiprobalni a psql-t is, hogy mi van, ha TCP-n probalsz kapcsolodni, nem unix domain socket-en at. Elso ranezesre azt mondanam, nem figyel TCP-n a postgres. Az adatbazisnev elhagyasa jo esellyel amiatt van, hogy mar nincs alapertelmezett adatbazis, mint korabban pl. a template1 volt a debianeknal.