Instalace a správa PostgreSQL: Porovnání verzí
pq_hba.conf |
|||
Řádek 80: | Řádek 80: | ||
or die('Could not connect: ' . pg_last_error()); | or die('Could not connect: ' . pg_last_error()); | ||
Obdobně z programu v jazyce Python nebo třeba C++ (knihovna [http://pqxx.org/ <tt>libpqx</tt>]) | Obdobně z programu v jazyce [[Python CGI psycopg2 - příklad 1|Python]] nebo třeba C++ (knihovna [http://pqxx.org/ <tt>libpqx</tt>]) | ||
Pokud se chceme přihlásit jako uživatel <tt>webuser</tt> pomocí [[Psql_a_Emacs#Psql|psql]], musíme | Pokud se chceme přihlásit jako uživatel <tt>webuser</tt> pomocí [[Psql_a_Emacs#Psql|psql]], musíme |
Verze z 24. 4. 2007, 18:08
Instalace
Debian GNU/Linux
su - apt-get install postgresql postgresql-client
Knihovna libpqxx
Pokud chcete psát C++ aplikace komunikující s databázovým systémem PostgreSQL, potřebujete knihovnu libpqxx. C++ klient API pro PostgreSQL nainstalujete
apt-get install libpqxx-dev
Správa
Jediná (implicitní) možnost, jak se připojit k nově vytvořenému databázovému systému (SŘBD) je přihlásit se jako root a pak změnit login na postgres pomocí příkazů
su su postgres psql template1 template1=# \q exit
Pro založení nového uživatele slouží příkazcreateuser, který se ptá, zda nový uživatel má mít právo vytvářet databáze anebo nové uživatele.
su postgres createuser prvni exit
Uživatel postgres může zakládat nové databáze pomocí příkazu createdb, např. může založit implicitni databazi pro prvniho založeného uživatele
createdb prvni
obecně pak
createdb -h localhost -U uzivatel -W heslo
Uživatel se pak může k databázi připojit např. pomocí klienta psql
psql -h localhost -U webuser -W web
Pokud má k tomu oprávnění, může přihlášený uživatel v klientu psql vytvářet databáze příkazem
psql cepek=# CREATE DATABASE test cepek=# \q
Více viz psql a Emacs.
Autentifikační konfigurační soubor pg_hba.conf
Autentifikační konfigurační soubor pro PostgreSQL klienty je pg_hba.conf a nachází se v adresáři /etc/postgresql/, resp. v jeho příslušném podadresáři (hba je zkratka z host-based authentication). Formát souboru je popsán v dokumentaci v kapitole Client Authentication.
Při instalaci postgresu je implicitně povolen přístup pro klienty přistupující přes Unix-domain sockets, tj. pro lokální uživatele metodou ident sameuser.
# TYPE DATABASE USER CIDR-ADDRESS METHOD # "local" is for Unix domain socket connections only local all all ident sameuser
Pokud chceme například přístup pro webovou aplikaci v PHP, musíme přístup explicitně povolit. Vytvoříme si databázi a uživatele.
su postgres createdb webdb createuser webuser -P # vyžádá si heslo
Parametr -P v příkazu createuser určuje, že pro vytvářeného uživatele bued vyžádáno heslo.
Novému uživatel přidělíme přístupová práva k databázi
su postgres psql GRANT ALL PRIVILEGES ON DATABASE webdb TO webuser;
Do souboru pg_hba.conf přidáme záznam pro uživatele webuser a databázi webdb (v našem případě přihlášení pouze z lokálního počítače)
host webdb webuser 127.0.0.1 255.255.255.255 md5
Z PHP se nyní můžeme připojit pomocí pg_connect
$dbconn = pg_connect("host=127.0.01 dbname=webdb user=webuser password=tajne.heslo") or die('Could not connect: ' . pg_last_error());
Obdobně z programu v jazyce Python nebo třeba C++ (knihovna libpqx)
Pokud se chceme přihlásit jako uživatel webuser pomocí psql, musíme explicitně zadat jméno počítače, uživatele, databáze a heslo.
psql -h localhost -d webdb -U webuser -W