Instalace a správa PostgreSQL: Porovnání verzí

Z GeoWikiCZ
m (+ kategorie databaze)
(pq_hba.conf)
Řádek 31: Řádek 31:
  createdb prvni
  createdb prvni


obecně pak  
obecně pak


  createdb -h localhost -U uzivatel -W heslo
  createdb -h localhost -U uzivatel -W heslo
Řádek 46: Řádek 46:


Více viz [[Psql a Emacs|psql a Emacs]].
Více viz [[Psql a Emacs|psql a Emacs]].
=== Autentifikační konfigurační soubor pg_hba.conf ===
Autentifikační konfigurační soubor pro PostgreSQL klienty je <tt>pg_hba.conf</tt> a nachází se v adresáři <tt>/etc/postgresql/</tt>, 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 <tt>pg_hba.conf</tt> přidáme záznam pro uživatele <tt>webuser</tt>  a databázi <tt>webdb</tt> (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í <tt>pg_connect</tt>
$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 [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
explicitně zadat jméno počítače, uživatele, databáze a heslo.
psql -h localhost -d webdb -U webuser -W


== Odkazy ==
== Odkazy ==

Verze z 23. 4. 2007, 08:02

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

Odkazy