====== Postregsql ====== ===== Inicialize ===== ==== Default konfigurace ===== * přístup do databáze je definován v souboru ''pg_hba.conf'' * příklad z Debian: vim /etc/postgresql/9.6/main/pg_hba.conf # Database administrative login by Unix domain socket local all postgres peer # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5 * metoda * MD5 znamená auth heslem * peer bere přihlášeného uživatele a heslo vůbec nežádá * z default konfigurace je vidět, že * při připojení přes Unix domain socket se bere aktuálně přihlášený uživatel a přístup je povolen pro jakéhokoliv uživatele do jakékoliv databáze * explicitně je vytažen uživatel postgresql, který se bere jako hlavní * listetning IP a port se nastavuje v ''postgresql.conf'' * ukázka z Debian: vim /etc/postgresql/9.6/main/postgresql.conf #listen_addresses = 'localhost' # what IP address(es) to listen on; # comma-separated list of addresses; # defaults to 'localhost'; use '*' for all # (change requires restart) port = 5433 # (change requires restart) * port bývá standardně 5432, Debian/Ubuntu má jiný * listen address je localhost, i když je v cfg zakomentovaný ==== Vytvoření první DB ==== * na začátku se lze do databáze přihlásit pouze pod uživatelem postgres * používá se k tomu terminálová utilita ''psql'' su postgres -c psql * existují také pomocné binárky: * ''createdb createlang createuser dropdb droplang dropuser'' * výpis aktuálních databází postgres=# \l * nejprve je potřeba přidat uživatele (pokud nechceme použít existujícího) * vytváří se pomocí ''CREATE ROLE'' (''CREATE USER'' je pouze alias) * pro [[https://www.postgresql.org/docs/8.1/static/sql-createrole.html|vytvoření uživatele s heslem]] se použije: CREATE ROLE blackconv WITH LOGIN PASSWORD 'blackconv'; * role lze vypsat pomocí select * from pg_roles; * [[https://www.postgresql.org/docs/9.0/static/sql-createdatabase.html|vytvoření databáze]] CREATE DATABASE blackconv OWNER blackconv; * ověřit připojení do databáze lze pomocí * explicitně uvádím localhost, aby se použil tcp socket místo unix, protože implicitně se používá auth mod peer pro unix domain socket psql -U blackconv -d blackconv -h localhost -p 5433