Hát már megint PostgreSQL-ezek :)
Bocsánat mindenkitől a kis csöndért, de kicsit feltorlódtak a határidők! :D
Na de most! Rögtön kicsit rendhagyóan üzemeltetési témába vágok bele. Jelzem, hogy ehhez nem nagyon értek! ;)
Az elmúlt napokban volt lehetőségem PostgreSQL-t telepíteni Debian alapú VPS szerverre azért, hogy kliens oldalról közvetlenül meglehessen támadni. Igazából egy kicsit magamnak is felírom most, hogy mi is történt, hogy legközelebb is emlékezzek. Szóval mit is csináltam a terminálban? (Az x-ek helyére az IP címeket kell képzelni)
1.Installáltam a PostgreSQL adatbázist
apt-get install postgresql
2. Beállítottam pg_hba.conf fájlban, hogy kívülről el lehessen érni
# IPv4 local connections: részben a következő sort adtam:
host all all xxx.xx.xx.xx/32 md5
Az első 'all' az adatbázist, a második 'all' a felhasználót takarja. Ezeket is érdemes szűkíteni, hogy csak adott adatbázishoz férjenek hozzá távolról és csak meghatározott felhasználóval/felhasználókkal.
Ezen a beállításon nem fog múlni az IPv6 átállás. Van hely az új verziójú internetprotokol megadásának is ;)
3. Beállítottam a posgresql.conf fájlban, hogy kívülről is el lehessen érni az adatbázist.
listen_addresses = 'localhost' -ot cseréltem listen_addresses = '*' -ra
Itt a * azt jelenti, hogy bármilyen gépről (hű de megengedő vagyok :D) de itt is lehet konkrét IP címet megadni ahogy pg_hba.conf fájlban (ott meg csillagot bár ezt nem próbáltam ki)
4. A fenti állítgatás után újra kell indítani az adatbázis motort
Csak ezt követően kezdenek élni a beállítások.
/etc/init.d/postgresql-8.3 restart
Oké, tudom. Ez lehet, hogy más postgresql verziónál másképpen néz ki! (A verzió szám legalábbis biztos :D)
5. A szerver tűzfal beállításain is lazítani kellett egy kicsit.
Jó fejként megengedtem, hogy a kijelölt IP címen fogadjunk csomagokat a PostgreSQL 5432-es portján illetve, hogy onnan küldözgethessen az adatbázis.
iptables -A INPUT -p tcp -s xxx.xxx.xxx.xxx --dport 5432 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 5432 -j ACCEPT
Az iptables a Linux kernelbe épített tűzfal, amely állítgatása egy külön tudományág. Szóval a fenti beállítások csak gondolat ébresztőek :)
6. Na ha minden jól csináltunk már el lehet érni külső eszközzel az adatbázist.
Sajna az object explorer jellegű ablakokban nem jelennek meg az adatbázisok valamiért, ezért a gyári pgAdmin3-at gyakorlatilag nem lehet használni. Viszont a Database .NET nevű szupi kis programmal csak el lehet érni egy-egy adatbázist (bár az object explorer ott is valamiért üres maradt) és lehet ügyködni. Ezenkívül kedvenc .net alkalmazásunk is képes elérni (megfelelő paraméterezés után). Ezek után már tényleg csak szépség tapaszok szükségesek:
- Engedélyezzük a plpgsql-t: createlang -U postgres plpgsql adatbázis_név
- Hozzuk létre az adatbázist esetleg a szükséges user(eke)t majd módosítsuk a 2 pontban látható pg_hba.conf fájlt, hogy csak ehhez az adatbázishoz és user(eke)t lehessen távolról elérni. (Ne felejtsük újra indítani az adatbázist)
7. Vigadjunk :)