GNU/Linux >> Znalost Linux >  >> Panels >> Webmin

Databázový server PostgreSQL

Tato stránka pokrývá Databázový server PostgreSQL a vysvětluje, jak používat Webmin ke správě tabulek, uživatelů, skupin a dat.

Obsah

Úvod do PostgreSQL

Stejně jako databázový server MySQL je PostgreSQL bezplatný databázový server, který podporuje více databází a tabulek a umožňuje klientům dotazovat se pomocí SQL. Je nejužitečnější pro programátory píšící aplikace, které potřebují k ukládání informací používat databázi. Populární jazyky jako Perl, C, Java a PHP mají všechny API pro přístup k databázi PostgreSQL.

Server PostgreSQL může hostit více databází a každá databáze může obsahovat více tabulek. Tabulka obsahuje pole, z nichž každé má svůj typ a velikost. Tabulky obsahují záznamy, z nichž každý obvykle obsahuje informace o nějakém objektu, jako je osoba, produkt nebo nákup. Pole si lze představit jako sloupce v tabulce a skutečné záznamy dat jako řádky. Některá pole mohou také obsahovat více hodnot, například pole.

SQL (což je zkratka pro Structured Query Language) je jazyk pro extrakci dat z databáze nebo aktualizaci dat v databázi. Téměř všechny databáze používají SQL a jeho syntaxe je obecně stejná pro všechny různé databázové balíčky, jako je Oracle, PostgreSQL a MySQL. Jeho syntaxe se však v této kapitole nezabývá.

Balíčky pro PostgreSQL přicházejí s mnoha distribucemi Linuxu a lze je zkompilovat a nainstalovat na téměř všechny druhy Unixu. Jeho fungování je na všech operačních systémech stejné a tedy i modul Webmin pro jeho správu.

PostgreSQL se skládá ze serverového procesu, který čte a zapisuje skutečné databázové soubory, a sady klientských programů, které komunikují se serverem. Nejčastěji používaným je příkaz psql, který umožňuje uživateli spouštět SQL dotazy a zobrazovat výsledky. Žádný z klientů nepřistupuje k databázovým souborům přímo – to je zcela ponecháno na serveru.

Všechny databázové soubory PostgreSQL jsou uloženy v adresáři, jako je /var/lib/pgsql nebo /usr/local/pgsql. Existuje také několik textových konfiguračních souborů, které ovlivňují provoz serveru a klientů. Nejdůležitější je pg_hba.conf, který uvádí klientské hostitele, kteří se mohou připojit k serveru. Toto je jediný soubor, který Webmin upravuje přímo – veškerá další konfigurace databáze se provádí připojením k databázovému serveru, buď přímo, nebo pomocí příkazu psql.

Modul PostgreSQL Database Server

Tento modul umožňuje administraci spravovat databáze, tabulky, pole a záznamy na PostgreSQL serveru. V mnoha ohledech je velmi podobný modulu databázového serveru MySQL. Když kliknete na jeho ikonu v kategorii Servery aplikace Webmin, hlavní stránka zobrazí seznam existujících databází ve vašem systému, jak je znázorněno na tomto snímku obrazovky:


Hlavní stránka modulu PostgreSQL

Pokud Webmin zjistí, že PostgreSQL není nainstalován, nebyl inicializován nebo se k němu nelze připojit, hlavní stránka se nezobrazí tak, jak je znázorněno na obrázku výše. Místo toho se zobrazí nějaká chybová zpráva. Nejběžnější z nich jsou popsány v následujících několika odstavcích.

Pokud se objeví zpráva PostgreSQL neběží na vašem systému, budete muset spustit databázový server, než bude možné tento modul použít k jeho správě. Stačí kliknout na Spustit PostgreSQL Server tlačítko v dolní části stránky. Pokud chcete, aby se od nynějška spouštěl při bootování, použijte modul Bootup and Shutdown (pokrytý v Bootup and Shutdown) k vytvoření nové akce pro jeho spuštění. Ve většině linuxových distribucí obsahují balíčky PostgreSQL spouštěcí skript s názvem postgres nebo postgresql, který není ve výchozím nastavení povolen.

Pokud PostgreSQL běží přes Webmin, nezná administrátorské uživatelské jméno a heslo potřebné pro připojení k němu a na hlavní stránce se zobrazí formulář *Přihlášení k PostgreSQL*. Musíte zadat platné přihlašovací údaje pro váš databázový server, obvykle pro uživatele postgres, který má úplný přístup ke všem databázím a funkcím. Přihlášení jako některý jiný uživatel s menšími oprávněními může zpočátku fungovat, ale nebudete moci využívat všechny funkce modulu. Někdy je PostgreSQL nastaven tak, aby ověřoval uživatele pomocí jejich uživatelského jména pro Unix, spíše než pomocí samostatného přihlašovacího jména a hesla (režim ověřování ident). Pokud je tomu tak ve vašem systému, budete muset zkontrolovat Připojit jako stejný uživatel Unixu? pole na formuláři.

Pokud se zobrazí chybová zpráva, jako je konfigurační soubor hostitele PostgreSQL hba.conf nebyl nalezen, pak je buď konfigurace modulu nesprávná, nebo váš server ještě nebyl poprvé inicializován. Mnoho balených verzí pro systémy Linux musí být před použitím inicializováno, obvykle spuštěním příkazu initdb. Pokud modul ví, jak to udělat ve vašem systému, Inicializovat databázi zobrazí se tlačítko, na které můžete kliknout pro první nastavení serveru.

Chybová zpráva Klientský program PostgreSQL *psql nebyl ve vašem systému nalezen* znamená, že PostgreSQL není vůbec nainstalován, nebo že je v jiném adresáři, než který Webmin očekává. Na systémech Linux a FreeBSD modul předpokládá, že jste nainstalovali balíčky pro databázi obsaženou ve vaší distribuci, zatímco na jiných operačních systémech předpokládá, že byla provedena standardní instalace ze zdrojového kódu do /usr/local/pgsql. Pokud jste jej nainstalovali a tato chybová zpráva se stále zobrazuje, budete si muset přečíst sekci *Konfigurace modulu databázového serveru PostgreSQL*, kde najdete podrobnosti o tom, jak upravit cesty, které modul používá.

Pokud používáte Linux a PostgreSQL není nainstalován, použijte modul Software Packages k instalaci všech balíčků počínaje postgres z distribučního CD nebo webu. Často jich bude několik, například postgresql, postgresql-server a postgresql-devel. Pro ostatní operační systémy navštivte http://www.postgresql.org/, stáhněte si distribuci zdrojového kódu, poté jej zkompilujte a nainstalujte.

Modul PostgreSQL používá příkazy SQL k provádění akcí, jako je vytváření tabulek, přidávání polí a úpravy záznamů. Pro provedení těchto příkazů se Webmin musí připojit k databázovému serveru, což lze provést jedním ze dvou způsobů. Může buď spustit příkaz psql se správnými parametry a analyzovat jeho výstup, nebo použít knihovnu Perl DBI pro přímé připojení.

První metoda je vždy k dispozici, protože příkaz psql se vždy instaluje, když je databázový server nainstalován. Není však zcela spolehlivý, protože určité druhy tabulkových dat vytvářejí výstup, který nelze vždy analyzovat. Z tohoto důvodu byste měli nainstalovat moduly DBI a DBD::Pg Perl. Pokud některý chybí, ve spodní části hlavní stránky se zobrazí zpráva s výzvou k instalaci jednoho nebo obou kliknutím na odkaz. Tím se dostanete na stránku v modulu Perl Modules, kde se stáhne a nainstaluje DBI a/nebo DBD::Pg.

Vytvoření nové databáze

Při první instalaci PostgreSQL se obvykle vytvoří databáze s názvem template1. Protože se tato šablona používá jako šablona pro všechny nové databáze, měli byste si vytvořit vlastní, která bude obsahovat tabulky pro vaši aplikaci pro ukládání dat. Postup je následující:

  1. Na hlavní stránce modulu klikněte na odkaz *Vytvořit novou databázi* nad nebo pod tabulkou ikon existující databáze.
  2. Zadejte jedinečný název do Název databáze pole. Mělo by se skládat pouze z písmen, číslic a znaku _.
  3. Když Cesta k souboru databáze pole je nastaveno na Výchozí , soubory, které skutečně obsahují data databáze, budou vytvořeny ve výchozím adresáři. Na systémech Linux to bude obvykle něco jako /var/lib/pgsql/data - na jiných operačních systémech to bude pravděpodobně /usr/local/pgsql/var. Chcete-li použít jiný adresář, jako uživatel Unixu databáze běží jako (obvykle postgres), nejprve ji vytvořte pomocí příkazu mkdir a poté spusťte initlocation s názvem adresáře jako parametrem. Poté vyberte přepínač sekce Cesta k souboru databáze a zadejte adresář do sousedního textového pole. Bohužel, pokud PostgreSQL nebyl zkompilován tak, aby podporoval absolutní cesty datových adresářů, po kliknutí na Vytvořit dojde k chybě. knoflík. Ve výchozím nastavení není tato funkce povolena.
  4. Klikněte na tlačítko Vytvořit knoflík. Databáze bude přidána a vy se vrátíte na hlavní stránku modulu, která by měla obsahovat jeho novou ikonu. Pokud na vašem serveru existuje databáze s názvem template1, všechny tabulky nebo jiné objekty, které obsahuje, budou zkopírovány do nově vytvořené databáze. To může být užitečné, pokud chcete přidat mnoho databází s podobnou strukturou.

Vytvoření nové tabulky

Tabulku lze kdykoli přidat do existující databáze. Každá tabulka má jedno nebo více polí, z nichž každé má typ, velikost a další atributy. Chcete-li přidat tabulku, postupujte takto:

  1. Na hlavní stránce klikněte na ikonu databáze, do které chcete tabulku přidat. Tím se dostanete na stránku pro úpravu databáze zobrazenou na níže uvedené obrazovce, na které je ikona pro každou existující tabulku.
  2. Do Pole zadejte počet polí, která má mít vaše nová tabulka. textové pole vedle Vytvořit novou tabulku a poté klikněte na tlačítko. Otevře se formulář pro zadání podrobností nové tabulky a jejích počátečních polí.
  3. Vyberte název tabulky a zadejte jej do Název tabulky pole. Název musí být v rámci databáze jedinečný a měl by obsahovat pouze písmena, čísla a znak _.
  4. Každý řádek Počátečních polí tabulka definuje pole, které bude přidáno do nové tabulky. Druh pole, které se přidá, závisí na tom, co zadáte pro řádek pod každým z následujících sloupců :
    • Název pole Název tohoto pole, který musí být v tabulce jedinečný a měl by se skládat pouze z písmen, číslic a _. Pokud ponecháte prázdné, nebude pro tento řádek přidáno žádné pole.
    • Typ dat Výběr, který provedete v této nabídce, určuje typ dat, která lze do tohoto pole uložit. Nejběžnější typy jsou varchar pro textové řetězce s proměnnou délkou int4 pro celá čísla a float4 pro zlomková čísla. Viz Typy polí sekce níže, kde najdete další podrobnosti.
    • Zadejte šířku Toto pole může zůstat prázdné, v takovém případě bude použita výchozí velikost pro zvolený typ. V opačném případě musíte zadat číslo, které je počtem znaků (pro pole char nebo varchar) nebo číslic (pro numerická pole), které pole může uložit. Některé typy, jako je blob a datum, vůbec nepotřebují nebo umožňují typ specifikovat.
    • Možnosti pole Pokud Pole? je zaškrtnuto, toto pole bude pole schopné uložit více než jednu hodnotu. Pokud Povolit hodnoty null? je zaškrtnuto, databáze umožní vložení hodnot SQL NULL do tohoto pole. Pokud Primární klíč? je zatrženo, bude toto pole součástí primárního klíče pro tabulku. Všechny tabulky by měly mít klíč, což je obvykle první pole a typu int nebo varchar. Když je Unikátní? je zaškrtnuto, PostgreSQL zabrání tomu, aby více než jeden záznam měl stejnou hodnotu pro toto pole. Pole primárního klíče jsou také automaticky jedinečná.
  1. Po zadání polí klepněte na Vytvořit tlačítko v dolní části stránky. Tabulka bude přidána do databáze a vy se vrátíte na stránku se seznamem existujících tabulek.


Stránka pro úpravu databáze

Přidávání a úprava polí

Do tabulek lze přidávat nová pole a měnit názvy stávajících polí. Neexistuje však způsob, jak změnit typ velikosti pole, pokud jej neodstraníte a znovu nepřidáte. Po vytvoření pole bude vždy zpočátku obsahovat hodnoty NULL v existujících řádcích tabulky.

Chcete-li přidat pole, postupujte takto:

  1. Na hlavní stránce modulu klikněte na ikonu databáze, která obsahuje tabulku. Poté klikněte na ikonu pro samotnou tabulku – tím se dostanete na stránku se seznamem názvů, typů a velikostí existujících polí, jak je znázorněno na obrázku níže.
  2. Vyberte typ nového pole z nabídky vedle tlačítka *Přidat pole typu*. Po kliknutí na váš prohlížeč zobrazí formulář pro vytvoření pole pro zadání zbývajících údajů.
  3. Vyberte název pro toto pole, který se skládá pouze z písmen, číslic a znaku _, a zadejte jej do Název pole Textové pole. Žádná dvě pole ve stejné tabulce nemohou mít stejný název.
  4. Pro pole char nebo varchar zadejte maximální počet znaků, které může pojmout, do pole Šířka typu Textové pole. V případě číselného pole musíte místo toho zadat dvě čísla oddělená čárkou, například 10,2 . První je maximální počet číslic, které může číslo v tomto poli uložit, a druhá je počet číslic vpravo od desetinné čárky. U ostatních typů polí Šířka typu textové pole se vůbec nezobrazí.
  5. Pokud chcete, aby do tohoto pole bylo možné uložit více hodnot stejného typu, vyberte Ano pro pole pole? volba.
  6. Klikněte na Vytvořit aby bylo pole přidáno do tabulky, pokud ve vašem vstupu nebyly žádné chyby.


Stránka úpravy tabulky

Jakmile je pole vytvořeno, můžete změnit pouze jeho název, na rozdíl od MySQL, kde lze upravit jeho typ nebo velikost. To však znamená, že neexistuje žádné riziko pro data, která obsahuje. Chcete-li přejmenovat pole v tabulce, postupujte takto:

  1. Na hlavní stránce modulu klikněte na ikonu databáze obsahující tabulku a poté na ikonu tabulky. Tím se dostanete na seznam polí v tabulce, jehož příklad je uveden na snímku obrazovky výše.
  2. Klikněte na název pole, které chcete změnit.
  3. Ve formuláři pro úpravy aktualizujte Název pole textové pole s novým názvem. Přirozeně se musí řídit stejnými pravidly pro pojmenování, která platí při vytváření pole.
  4. Klikněte na tlačítko Uložit tlačítko pro provedení změny v databázi.

Odstranění pole

Na rozdíl od MySQL nemá databázový server PostgreSQL žádný vestavěný SQL příkaz pro smazání pole z tabulky. Je však možné provést odstranění pole vytvořením nové dočasné tabulky, která pole postrádá, smazáním staré tabulky a přejmenováním na dočasnou na původní název. Funguje to a Webmin to může udělat vše za vás automaticky – některé informace, jako jsou indexy a výchozí hodnoty polí, však budou během procesu ztraceny. Skutečná data v tabulce (kromě těch ve smazaném poli) však budou v bezpečí.

Pokud vaše tabulka neobsahuje žádné indexy nebo pole s výchozími hodnotami, můžete pokračovat a pole odebrat podle následujících kroků :

  1. Klikněte na ikonu databáze obsahující tabulku na hlavní stránce modulu a poté na samotnou ikonu tabulky.
  2. Klikněte na Pole přetažení tlačítko na formuláři pro úpravu tabulky pod seznamem existujících polí. Tím se dostanete na stránku se seznamem všech polí v tabulce, z nichž každé má vedle sebe přepínač pod Drop This One .
  3. Vyberte pole přepínače, které chcete z tabulky odebrat.
  4. Zaškrtněte políčko Vybrat pro potvrzení zaškrtávací políčko ve spodní části formuláře.
  5. Klepněte na Rozkládací pole tlačítko pro odstranění vybraného pole. Jakmile bude smazána, znovu se zobrazí stejná stránka, abyste mohli odstranit další, pokud si přejete.

Typy polí

PostgreSQL má velké množství typů polí, z nichž všechny jsou podporovány Webminem. Ne všechny jsou však zvláště užitečné pro průměrnou databázi. Nejlepším zdrojem informací je oficiální dokumentace na http://www.postgresql.org/docs/7.3/static/datatype.html

PostgreSQL má několik typů pro ukládání geometrických objektů, jako je bod, cesta, rámeček a kruh, a typy pro síťové informace, jako je inet, cidr a macaddr. Pomocí tohoto modulu lze vytvářet a upravovat pole všech těchto typů, i když nejsou zdokumentována výše. Žádné jiné databáze (jako Oracle nebo MySQL) však tyto typy nepodporují, takže může být moudré se jim vyhnout, pokud chcete, aby byly vaše programy na databázi nezávislé.

Zobrazení a úprava obsahu tabulky

Modul PostgreSQL umožňuje prohlížet a upravovat obsah libovolné tabulky v libovolné databázi, a to i těch, které nemají primární klíče. Na rozdíl od modulu MySQL dokáže identifikovat konkrétní řádky k editaci pomocí speciálního sloupce oid, který obsahuje jedinečný identifikátor pro každý záznam.

Chcete-li zobrazit obsah tabulky, postupujte takto :

  1. Na hlavní stránce klikněte na ikonu databáze, která obsahuje tabulku, a poté na ikonu tabulky samotné.
  2. Ve formuláři pro úpravu tabulky klikněte na Zobrazit data tlačítko ve spodní části. Tím se dostanete na stránku obsahující tabulku prvních 20 řádků tabulky.
  3. Pokud tabulka obsahuje více řádků, než lze zobrazit na jedné stránce, bude začátek a konec viditelného rozsahu a celkový počet řádků zobrazen nahoře. Vedle něj jsou šipky doleva a doprava pro přesun na dalších nebo předchozích 20 záznamů. Na rozdíl od modulu MySQL není na této stránce žádný způsob, jak vyhledávat záznamy nebo přeskočit na konkrétní číslo řádku.

Stejnou stránku lze také použít k úpravě, mazání nebo přidávání záznamů. Záznamy, které chcete upravit, je třeba nejprve vybrat pomocí zaškrtávacích políček napravo od každého řádku nebo pomocí Vybrat vše a *Invertovat výběr odkazů. Když kliknete na *Upravit vybrané řádky tlačítko, znovu se zobrazí stránka s hodnotami všech vybraných záznamů v textových polích. Proveďte jakékoli změny, které chcete, a klikněte na tlačítko Uložit tlačítko v dolní části stránky pro aktualizaci databáze. Nebo stiskněte Zrušit pokud chcete ukončit úpravy bez uložení změn.

Chcete-li odstranit záznamy, vyberte je pomocí stejných zaškrtávacích políček a odkazů pro výběr a klikněte na tlačítko Odstranit vybrané řádky knoflík. Vybrané záznamy budou okamžitě odstraněny z databáze bez dalšího potvrzení.

Chcete-li přidat nový záznam, klepněte na Přidat řádek tlačítko pod tabulkou. Zobrazí se další řádek obsahující prázdná textová pole, do kterých můžete zadat nové podrobnosti. Klikněte na Uložit přidá nový záznam do tabulky a posune displej tak, abyste viděli nový řádek. Případně můžete kliknout na Zrušit pokud si to s přidáním záznamu rozmyslíte.

Odstranění tabulek a databází

Tento modul obsahuje také tlačítka pro smazání tabulky z databáze, případně celé databáze a všeho v ní. Po odebrání tabulky budou všechny záznamy a pole, která obsahuje, ztraceny

Chcete-li jeden odstranit, postupujte takto :

  1. Na hlavní stránce modulu klikněte na ikonu databáze, ze které chcete tabulku odebrat, a poté na ikonu tabulky samotné.
  2. Klikněte na Přehodit tabulku tlačítko pod seznamem polí. Tím se dostanete na potvrzovací stránku, která se vás zeptá, zda jste si jisti, a sdělí vám, kolik záznamů bude smazáno.
  3. Chcete-li pokračovat, klikněte na Přehodit tabulku znovu tlačítko. Jakmile bude odstraněna, vrátíte se na seznam dochovaných tabulek v databázi.

Je také možné smazat celou databázi a všechny tabulky a záznamy v ní. Libovolnou databázi lze odstranit, ale odstranění šablony1 je špatný nápad, protože modul se k ní připojuje při načítání seznamu jiných databází a předpokládá, že bude vždy existovat. Jako obvykle, pokud jste si nevytvořili zálohu, neexistuje způsob, jak smazání vrátit zpět.

Za předpokladu, že opravdu chcete smazat databázi, postupujte takto :

  1. Na hlavní stránce klikněte na ikonu databáze, kterou chcete odstranit.
  2. Klepněte na Drop Database tlačítko pod seznamem tabulek. Zobrazí se potvrzovací stránka, která vám řekne, kolik tabulek a záznamů bude ztraceno, pokud budete pokračovat.
  3. Chcete-li pokračovat v mazání, klikněte na Drop Database a po dokončení se vrátíte na hlavní stránku modulu.

Je možné odstranit databázi template1, pokud změníte počáteční PostgreSQL databázi pole na konfiguraci modulu do nějaké jiné databáze, která nebude odstraněna.

Provádění příkazů SQL

Modul PostgreSQL také poskytuje jednoduché rozhraní pro spouštění SQL příkazů na databázi a zobrazení jejich výstupu. Postup použití:

  1. Na hlavní stránce klikněte na ikonu databáze, ve které chcete spouštět příkazy.
  2. Klikněte na Spustit SQL pod seznamem ikon tabulky. Tím se dostanete na stránku pro zadávání SQL příkazů, spouštění souborů příkazů a načítání dat do databáze.
  3. Do textového pole v horní části stránky zadejte libovolný příkaz SQL a stiskněte Provést knoflík. Pokud došlo k chybě ve vaší syntaxi SQL nebo příkaz nelze provést, zobrazí se chybová zpráva z PosygreSQL. V opačném případě se zobrazí tabulka výsledků z SQL (pokud existuje). Pouze příkazy SELECT poskytují výsledky - UPDATE, INSERT a další příkazy, které upravují záznamy, nikoli.

Na rozdíl od modulu MySQL zde není žádná historie příkazů ani podpora pro spouštění více SQL příkazů ze souboru.

Zálohování a obnova databáze

Pokud některá z vašich databází obsahuje důležité informace, měla by být pravidelně zálohována pro případ, že by selhání disku nebo chyba SQL způsobilo ztrátu dat. Je také dobré vytvořit zálohu před provedením nějaké potenciálně rizikové operace, jako je například spuštění složitého příkazu SQL, který upravuje mnoho záznamů.

Vzhledem ke změnám parametrů příkazů pg_dump a pg_restore vám modul umožňuje vytvářet a obnovovat zálohy pouze při použití PostgreSQL verze 7.2 a vyšší. Pokud používáte starší verzi, tlačítka vysvětlená v níže uvedených krocích nebudou viditelná.

Chcete-li použít modul k vytvoření zálohy, postupujte takto:

  1. Na hlavní stránce klikněte na ikonu databáze, kterou chcete zálohovat.
  2. Klikněte na tlačítko *Záloha * pod seznamem tabulek. Tím se dostanete do formuláře pro zadání cíle zálohování a možností.
  3. V Cesta k záložnímu souboru zadejte úplnou cestu k souboru, do kterého má být záloha zapsána, například /tmp/backup.tar . Soubor již nesmí existovat – pokud existuje, při stisknutí tlačítka Záloha dojde k chybě knoflík.
  4. V nabídce Formát souboru zálohy vyberte typ souboru, který má být vytvořen. Dostupné možnosti jsou :*Prostý text SQL *Soubor bude obsahovat řadu příkazů SQL, které znovu vytvoří tabulky v databázi a znovu je naplní daty. Tento formát je vhodný v tom, že soubory zálohy lze ručně upravovat, ale nemůžete do zálohy SQL zahrnout velké objekty (jako jsou bloby) nebo z ní selektivně obnovovat. *Tar archiv *Záložní soubor bude standardní unixový tar soubor obsahující různé soubory, které určují struktury a obsah tabulek. Jsou podporovány velké objekty a je možné selektivní obnovení. *Vlastní archiv *Soubor bude ve vlastním zálohovacím formátu PostgreSQL, který je komprimovaný a podporuje velké objekty, vyloučení dat a opětovné řazení v době obnovy.
  5. Chcete-li provést zálohu, stiskněte tlačítko *Zálohovat *v dolní části formuláře. Pokud vše proběhne v pořádku, budete přesměrováni na seznam tabulek - v opačném případě se zobrazí stránka zobrazující spuštění příkazu backup a jeho chybový výstup.

Pokud máte databázi, která se používá pro důležitý produkční účel, měla by být pravidelně zálohována, například jednou denně. Místo toho, abyste se každý den řídili výše uvedenými pokyny, můžete použít modul Plánované úlohy cronu (popsaný v kapitole 10) k vytvoření úlohy, která za vás provede zálohování. Chcete-li zjistit, jaký příkaz spustit, pomocí výše uvedených pokynů nejprve vytvořte zálohu a poté navštivte modul Webmin Actions Log (popsaný v kapitole 54), kde najdete příkaz, který použil.

Jakmile byl vytvořen záložní soubor, lze jej obnovit na stejném systému nebo na jiném serveru se systémem MySQL. Postup je:

  1. Na hlavní stránce modulu klikněte na ikonu databáze, do které má být záloha obnovena.
  2. Klepněte na tlačítko Obnovit pod seznamem tabulek vyvoláte formulář pro výběr záložního souboru.
  3. V Cesta k záložnímu souboru zadejte úplnou cestu k souboru obsahujícímu záložní data PostgreSQL, jako je /tmp/backup.tar . Tento soubor může být v kterémkoli z formátů dostupných na záložním formuláři.
  4. Normálně se proces obnovy pokusí znovu vytvořit tabulky, než do nich obnoví data. Chcete-li se tomu vyhnout, změňte nastavení Pouze obnovit data, nikoli tabulky? pole na Ano . To bude fungovat pouze v případě, že všechny tabulky v záloze již existují. Všechna data, která aktuálně obsahují, budou spojena s obnovenými záznamy.
  5. Normálně proces obnovy selže, pokud tabulka v záloze již v databázi existuje. Chcete-li stávající tabulky před obnovením odstranit, změňte nastavení Před obnovením odstranit tabulky? pole na Ano . Nemá smysl nastavovat toto i předchozí pole na Ano .
  6. Klikněte na tlačítko Obnovit tlačítko pro opětovné načtení dat a tabulek ze záložního souboru. Pokud se něco pokazí, zobrazí se chybová zpráva zobrazující výstup příkazu pg_restore - jinak se vrátíte do seznamu tabulek v databázi.

Správa uživatelů PostgreSQL

Jak byste očekávali, databázový server PostgreSQL neumožňuje pouze komukoli se připojit a začít manipulovat s daty. Místo toho ověřuje klienty tím, že od nich požaduje zaslání uživatelského jména a hesla, které porovnává se svým vlastním interním seznamem uživatelů. Tento seznam uživatelů databáze je zcela oddělený od seznamu uživatelů Unixu v souboru /etc/passwd.

Ve výchozím nastavení bude existovat pouze uživatel postgres a bude mít plný přístup ke všem databázím a tabulkám. Pokud píšete aplikaci, která používá databázi, měl by být pro tuto aplikaci vytvořen nový uživatel, který se bude přihlašovat jako. Pokud k vaší databázi bude pomocí příkazu psql nebo jiných klientských programů přistupovat více lidí, každý by měl mít své vlastní přihlašovací jméno a heslo.

Chcete-li přidat nového uživatele, postupujte takto:

  1. Na hlavní stránce modulu klikněte na Uživatelé PostgreSQL ikona. Tím se dostanete na seznam stávajících uživatelů a jejich schopností, jak ukazuje snímek obrazovky níže.
  2. Klikněte na odkaz Vytvořit nového uživatele nad nebo pod seznamem, čímž se zobrazí formulář pro vytvoření uživatele.
  3. Do pole Uživatelské jméno zadejte jedinečné jméno uživatele, které se skládá pouze z písmen, číslic a znaku _ pole.
  4. Chcete-li nastavit heslo pro tohoto uživatele, vyberte druhý přepínač v části Heslo pole a zadejte heslo do textového pole vedle něj. Pokud Žádné je vybrána, uživatel se nebude moci přihlásit, pokud server nebyl nakonfigurován tak, aby umožňoval připojení bez hesla (jak je vysvětleno v části *Omezení přístupu klienta*).
  5. Pokud chcete, aby tento uživatel mohl vytvářet své vlastní databáze, změňte Může vytvářet databáze? pole na Ne . To musí skutečně umět pouze hlavní uživatel správy (postgres).
  6. Chcete-li tomuto uživateli udělit práva upravovat a vytvářet uživatele PostgreSQL, změňte Můžete vytvářet uživatele? pole na Ano . Opět by mělo být normálně ponecháno jako Ne .
  7. Platí do pole řídí, jak dlouho lze tohoto uživatele používat. Pokud Navždy je vybráno, nebude mít žádné datum vypršení platnosti - ale pokud zvolíte druhou možnost a do textového pole zadáte datum ve formátu RRRR-MM-DD, nebude účet po tomto datu použitelný.
  8. Klikněte na tlačítko Vytvořit tlačítko pro přidání nového účtu do seznamu uživatelů PostgreSQL. Lidé nebo programy se budou moci okamžitě přihlásit jako tento uživatel. Databázový server je často standardně nastaven tak, aby umožňoval libovolnému lokálnímu uživateli přihlásit se bez nutnosti zadávat heslo. Chcete-li to změnit, přečtěte si část Omezení přístupu klienta sekce.
  9. Chcete-li přesně nakonfigurovat, ke kterým tabulkám a pohledům může tento nový uživatel přistupovat, postupujte podle pokynů v části *Úprava oprávnění k objektu*.


Stávající uživatelé PostgreSQL

Jakmile je uživatel vytvořen, lze jej upravovat kliknutím na jeho jméno v seznamu uživatelů na obrázku výše. Tím se dostanete do editačního formuláře, který je téměř totožný s formulářem pro vytvoření uživatele, kromě toho, že jméno uživatele nelze změnit. Jakmile dokončíte úpravu hesla, data vypršení platnosti a dalších polí, klikněte na Uložit tlačítko pro aktivaci změn.

Uživatele lze také smazat kliknutím na Smazat tlačítko na stránce úprav. Dávejte pozor, abyste neodstranili uživatele postgres, protože jej normálně tento modul Webmin používá k přihlášení do PostgreSQL. Ve skutečnosti i úprava tohoto uživatele může způsobit problémy, pokud nastavíte datum vypršení platnosti nebo mu odeberete možnost vytvářet databáze nebo jiné uživatele.

Stejně jako mnoho jiných modulů lze tento modul nakonfigurovat tak, aby automaticky vytvořil, aktualizoval nebo odstranil uživatele PostgreSQL, když je přidán, upraven nebo odebrán uživatel Unix. To může být užitečné, pokud povolíte některým uživatelům Unixu ve vašem systému přístup k databázím a chcete mít jejich hesla synchronizovaná.

Chcete-li nastavit synchronizaci, postupujte takto:

  1. Na hlavní stránce modulu klikněte na Uživatelé PostgreSQL a přejděte dolů na formulář pod seznamem existujících účtů.
  2. Pokud chcete, aby byl pro každého nového uživatele Unixu vytvořen nový uživatel PostgreSQL, zaškrtněte políčko *Při přidání uživatele Unixu přidat nového uživatele PostgreSQL*. Automaticky vytvoření uživatelé však nebudou mít žádná konkrétní oprávnění k objektu.
  3. Pokud chcete, aby uživatelům PostgreSQL byla změněna hesla, když se to samé stane s odpovídajícími uživateli Unixu, zaškrtněte políčko *Aktualizovat uživatele PostgreSQL, když je upraven odpovídající uživatel Unixu*.
  4. Chcete-li, aby byl uživatel PostgreSQL smazán ve stejnou dobu jako uživatel Unixu stejného jména, zaškrtněte políčko *Smazat uživatele PostgreSQL, když je smazán odpovídající uživatel Unixu*.
  5. Klikněte na tlačítko Uložit pro aktivaci nového nastavení synchronizace.

Správa PostgreSQL skupin

PostgreSQL si vede svůj vlastní interní seznam skupin, z nichž každá může obsahovat nula nebo více uživatelů. Skupiny jsou nejužitečnější při přidělování oprávnění k objektům, protože umožňují udělit přístup k tabulce nebo pohledu mnoha uživatelům najednou. Kromě toho nehrají žádnou roli v řízení přístupu nebo ověřování.

Chcete-li vytvořit skupinu, postupujte takto:

  1. Na hlavní stránce modulu klikněte na Skupiny PostgreSQL ikona. Váš prohlížeč zobrazí tabulku existujících skupin a jejich členů, pokud existují. Při první instalaci PostgreSQL nejsou definovány žádné skupiny.
  2. Klikněte na Vytvořit novou skupinu odkaz pro přechod na formulář pro vytvoření skupiny.
  3. Zadejte název skládající se z písmen, číslic a znaku _ do Název skupiny pole. Žádná jiná skupina nebo uživatel nemůže mít stejné jméno.
  4. Ponechte ID skupiny pole nezměněno, protože ID vybírá automaticky Webmin.
  5. V části Členové vyberte uživatele, kteří budou členy této skupiny seznam. Ve většině prohlížečů můžete Ctrl-kliknutím vybrat více než jedno uživatelské jméno nebo Shift-kliknutím vybrat celý rozsah.
  6. Klikněte na Vytvořit pro přidání skupiny. Object permissions can now be assigned to it, as explained in the Editing object permissions sekce.

Just like a user, a group that you have created can be edited by clicking on its name in the list on the PostgreSQL Groups page, changing the name or membership list on the editing form and hitting Save . Or it can be deleted by clicking the Delete button on the same form.

Restricting client access

Usually, the default PostgreSQL configuration allows any user to connect to the database server from the same system without needing to login, but prevents all remote access. If you want to allow clients to connect from other systems (for example if you are setting up a database server that will be accessed from a separate web server), then PostgreSQL needs to be configured to allow this.

To grant access to another host, follow these instructions :

  1. On the module's main page, click on the Allowed Hosts ikona. You will be taken to a page listing hosts from which connections are allowed, the databases clients can access and the authentication modes used. Typically, only local connections and those from 127.0.0.1 will be allowed initially.
  2. Click on the Create a new allowed host link above or below the list to bring up the host creation form.
  3. In the Host address field, select Single host and enter the IP or hostname of the remote client system into the adjacent field. Alternately, to allow an entire LAN select Network and enter the network address (like 192.168.1.0 ) and netmask (like 255.255.255.0 ) into the fields next to it.
  4. To give the specified host or network access to all databases on your server, leave the Database field set to All databases . Otherwise, make a selection from the menu to limit the client to just that one. If you want to grant a client access to two databases, you will need to add two host entries each with a different choice selected from Database Jídelní lístek.
  5. In the Authentication mode field, select Plaintext password . The option No authentication required will also allow users on the client system to connect, but without needing to provide a valid password. Clearly, this is not very secure.
  6. Hit the Create button to add the new allow host entry.

If your system has multiple users, each of whom has a data in a PostgreSQL database that belongs to them, you should not allow them to login to the database server without a password. By default, PostgreSQL allows exactly this, which is not particularly secure! Fortunately, it can be easily fixed. However, there is a risk that you will lock Webmin itself out of the database, as it is often set up by default to login as the user postgres without a password.

Follow the instructions below to re-configure the module to login with a password, and to force local users to do the same thing :

  1. On the module's main page, click on the PostgreSQL Users icon and then on the postgres user to bring up its editing form.
  2. Select the second radio button for the Password field and enter a nice secure password into the adjacent text field. Then click Save .
  3. Go back to the module's main page, and hit the Module Config odkaz.
  4. In the Administration password field, select Set to and enter the password you chose into the text field. Then click Save at the bottom of the form.
  5. Click on the Allowed Hosts icon, and then on Local connection in the Host address sloupec. Change the *Authentication mode* field to Plaintext password , and click the Save knoflík. After your browser returns to the list of allowed hosts, click on 127.0.0.1 and make the same change.
  6. Return to the module's main page. If all went well, you will still be able to see and manage databases, and all users will require a password to connect.

When a client connects to the database server, PostgreSQL checks the host entries on the Allowed Hosts page in order. As soon as it finds one that matches the client address and requested database, the authentication mode for that entry is used. You can use this feature to block certain hosts while allowing all others by creating a host entry with the *Host address *field set to the IP you want to block, and the Authentication mode set to Reject connection . This entry must appear in the list above any broader entry that would allow the same client.

Because new allowed host entries are always added to the end of the list, the page has a feature for moving around. The up and down arrows under the Move column in the list can be clicked on to move an entry up or down one place respectively.

Editing object privileges

Each PostgreSQL object (a table, view, index or sequence) has an owner, which is the user who created it. By default, only the owner can select data from or update records in an object, which is not too useful if your server has multiple users who will all need access to the same tables. Fortunately, it is possible to grant access to database objects to other users or groups, by following the steps below :

  1. On the module's main page, click on the Granted Privileges icon. Assuming you actually have some tables in your databases, this will bring up a page listing all existing objects and their current permissions.
  2. Click on the name of the object that you want to grant access to, which will take you to its privileges editing form.
  3. The Grant privileges to table lists all users and groups to whom access has been granted, followed by a blank row for adding a new one. Most of the time, it will just contain that one empty row though. In the User column, select the name of the user or group to grant privileges to from the menu, or choose Everyone to grant access to all PostgreSQL users. In the Privileges column, check the boxes for the rights that should be granted to the chosen user or group. The available options are their meanings are :*SELECT *When checked, the user will be able to view records in this table or view with an SQL SELECT query. *UPDATE *When chosen, this option gives users the ability to update existing records in the table. *INSERT *This option gives users the right to add new records to the table with an SQL INSERT statement. *DELETE *When checked, the user will be able to delete existing records from the table. *RULE *Allows the user to create of rules on the table or view. A rule is an piece of SQL code that is executed to transform data inserted, updated or deleted in the table. *REFERENCES *Allows the user to create a field that references this table as a foreign key. *TRIGGER *When checked, the user will be able to create triggers for this table. Because the table only displays one empty row at a time, you will need to save and re-edit the object permissions if you want to grant access to more than one user. If several users are to be given the same permissions, it is better to put them in a group and grant access to the group instead. # Hit the Save button at the bottom of the page to make the new permissions active.

Unlike MySQL, there is no way to give a user access to an entire database, or just to a field within a table. All privileges are granted at the table level only.

Řízení přístupu k modulu

As WebminUsers explains, it is possible to create a Webmin user who has access to only a subset of the features of some modules. In the case of the PostgreSQL Database Server module, you can limit a user to being able to manage tables and fields in specific databases, and prevent him from editing users, groups or granted permissions. This can be useful if various databases on your server are owned by different people, and you want to give each of them a Webmin login to manage only those that belong to them.

Once a user has been given access to the module, to limit him to only certain databases the steps to follow are :

  1. In the Webmin Users module, click on PostgreSQL Database Server next to the name of a user or group who has access to the module.
  2. On the access control form, change the Can edit module configuration? pole na Ne . This is necessary to prevent the user changing the programs that the module uses for accessing the database.
  3. In the Databases this user can manage field, choose the Selected volba. Then select the databases he should have access to from the list below.
  4. Change the Can create new databases? pole na Ne . There is no reason that a restricted user of this type should be able to add new databases.
  5. Unless you want the user to be able to delete his own databases, change the Can drop databases? pole na Ne . Leaving it set to Yes is harmless though, as he will only be able to delete those that you have granted him access to.
  6. Change the Can stop and start PostgreSQL server? pole na Ne .
  7. Change the Can edit users, groups, hosts and grants? pole na Ne , so that he cannot create a new PostgreSQL user with access to all databases.
  8. Set the Can create backups? pole na Ne , as giving a user the rights to make a backup may allow him to overwrite files on your system.
  9. The Can restore backups? field can be safely set to Yes , as there is no danger in allowing a user to re-load data into his databases from a backup file.
  10. Finally, to make the new access control restrictions active, click Save .

Configuring the PostgreSQL Database Server module

Like most other modules, this one has several options that you can set by clicking on the Module Config link in the top-left corner of its main page. Those fields listed under *Configurable option* relate to its connection to the database and user interface, while those under System configuration define the paths to the PostgresSQL programs and files.

Unless you have installed the database server in a different directory to the default for your operating system, fields in the second section do not generally need to be changed. This can happen if you installed PostgreSQL from the source code instead of using the package supplied with your Linux distribution, or if you have two copies of PostgreSQL installed and are configuring a clone of the module (covered in WebminConfiguration) to manage the second install.


Webmin
  1. Co je databázový server a k čemu se používá?

  2. Jabber IM Server

  3. Jak zabezpečit PostgreSQL Server

  1. PostgreSQL Drop databáze s příklady

  2. Jak vytvořit databázi v PostgreSQL

  3. Instalace Ubuntu 20.04 PostgreSQL

  1. Instalace Ubuntu 22.04 PostgreSQL

  2. Jak nainstalovat PostgreSQL na Ubuntu 20.04

  3. Jak nainstalovat PostgreSQL na CentOS 8