Nastavení serveru

Nastavení serveru se skládá z těchto základních kroků: nastavení konfiguračních souborů, povolení komunikačního portu na firewallu počítače, přiřazení uživatele pod kterým server poběží a nastavení přístupových práv k databázím.

U serveru Firebird je velice výhodné použít pro vaši databázi tzv. alias a skrýt tak před uživateli skutečné umístění databázového souboru.

Konfigurace serveru

Konfigurace serveru probíhá pomocí konfiguračního textového souboru a pomocí systémových proměnných. Konfigurační soubor se nachází v hlavním adresáři programu a jmenuje se tradičně firebird.conf nebo interbase.conf. Soubor má tradiční strukturu - komentář s popisem a nápovědou a zakomentované nastavení výchozí hodnoty. Pokud chcete toto nastavení změnit na vámi požadovanou hodnotu, stačí jen odkomentovat (smazat znak #) a zapsat novou hodnotu dle návodu.

Nejčastější změny - na 1. řádku je výchozí hodnota:

DatabaseAccess = Full - povolení přístupu serveru k databázovým souborům.

  • Full - plný přístup, server může přistupovat ke všem databázovým souborům na disku
  • Restricted - pouze databáze ve vyjmenovaných adresářích, např. ‘= Restricted C:\Data;C:\Firebird’, nebo ‘= Restricted /data/firebird’
  • None - přístup povolen jen k databázím uvedeným v aliases.conf - doporučený přístup

ExternalFileAccess = None - povolení k zakládání externích tabulek. Externí tabulky jsou velice vhodné hlavně pro import dat a logování, neboť se jedná o prosté textové soubory. V případě výpadku databáze nejsou nijak poškozeny a je podle nich možné obnovit alespoň část dat. Na druhou stranu představují jisté bezpečnostní riziko pro server, a proto jsou standardně zakázány. Pokud nemáte nějaký zvláštní důvod ke změně - nepovolujte je!

  • Full - plný přístup, server může vytvářet externí tabulky kdekoliv na disku, samozřejmě s omezeními danými přímo operačním systémem pro uživatele pod jehož účtem server běží
  • Restricted - pouze ve vyjmenovaných adresářích, syntax je stejná jako u DatabaseAccess
  • None - vytváření externích tabulek je zcela zakázané, každý pokus o vytvoření, nebo zápis do tabulky skončí chybou

UdfAccess = Restricted - seznam povolených adresářů s knihovnami uživatelsky definovaných funkcí. Pokud ve Win32 neuvedete písmeno jednotky, bude cesta brána relativně k Rootu serveru Full, Restricted, None. Nastavení shodné s ExternalFileAccess. Doporučujeme ponechat Restricted - databáze využívá některé standardní UDF (dodávané přímo s Firebird SQL)

TempDirectories = nastavení adresáře pro dočasné soubory pro vyhledávání, řazení a seskupování

  1. Pokud je vyplněno tak se bere nastavení z konfiguračního souboru, např. ‘TempDirectories = c:\temp 100000000;d:\temp 500000000;e:\temp’. Jednotlivé adresáře jsou oddělené středníkem a mohou obsahovat i limitní hodnotu využitelného místa v bytech. Je doporučeno, aby byly na fyzicky jiném diskovém zařízení než server, pokud je k dispozici.
  2. Systémová proměnná FIREBIRD_TMP
  3. Systémová proměnná TEMP
  4. Systémová proměnná TMP

Povolení komunikačního portu

RemoteServicePort = výchozí hodnota - 3050 - nastavení portu na kterém server očekává požadavky na připojení. V případě potřeby lze změnit.

Změna čísla - pokud změníte číslo portu, nesmíte změnit název služby definovaný klíčem RemoteService. Toto je vhodné pouze v případě, že na výchozím portu již provozujete jinou službu, např. Interbase server.

Povolení komunikačního portu pro přístup k serveru:

Server po instalaci využívá port 3050, tento port lze u serveru Firebird změnit, viz výše. Je třeba tento port uvolnit pro TCP/IP komunikaci, kterou používá náš program (server umí komunikovat i přes NetBEUI). Pokud na serveru nepoužíváte firewall, můžete tento krok přeskočit.

Přiřazení uživatele serveru a nastavení přístupových práv

Hlavně na systémech, které efektivně omezují uživatelská práva k adresářům a souborům (Linux, Unix), je vhodné velice dobře zvážit, jaká práva dáte uživateli, pod jehož účtem budete provozovat databázový server. Uživatel musí mít právo zápisu i čtení k databázovým souborům, naopak k souborům v adresáři “bin” v rootu serveru je doporučeno pouze právo na čtení a spuštění. Dále by tento uživatel neměl mít právo přístupu do jiných adresářů než do těch, které jsou vyjmenovány v klíčích DatabaseAccess (v případě nastavení Full, jen do těch, kde skutečně jsou databáze), ExternalFileAccess, UdfAccess a TempDirectories. Pokud používáte externí tabulky, je vhodné je vytvořit předem jako prázdné soubory pod jiným vlastníkem a serveru povolit pouze čtení a zápis, nikoliv však spuštění (execute). Server také musí mít přístup ke konfiguračním souborům, zde však přidělte jen právo na čtení! Z toho vyplývá, že je velice vhodné vytvořit pro server zvláštní uživatelský účet v rámci operačního systému.

Soubor aliases.conf - server Firebird umožňuje definovat pro jednotlivé databáze zástupná jména a znemožnit tak zjištění skutečného umístění databáze na serveru. V kombinaci s volbou DatabaseAccess = None také umožňuje efektivně zabránit přihlášeným uživatelům vytvářet na serveru vlastní databáze a tak jej ohrozit, nebo zneužít. Nastavení aliasu v souboru má následující syntax:

Alias = c:\data\kpwin.fdb resp. Alias = /opt/data/kpwin.fdb

Top