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í
- 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.
- Systémová proměnná FIREBIRD_TMP
- Systémová proměnná TEMP
- 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