Konfigurace uživatelských účtů databáze pro MariaDB MaxScale a backendový cluster obvykle vyžadovala duplicitní úsilí. Důvodem je, že záznam účtu musí existovat pro skutečného hostitele klienta i hostitele MaxScale. MaxScale ověřuje příchozí uživatele proti záznamu uživatele u skutečného klientského hostitele. Když MaxScale vytvoří relaci směrování, použije k ověření klienta na backendu zakódované uživatelské jméno a heslo klienta. Backend vidí připojení přicházející ze stroje, na kterém běží MaxScale. Pokud název hostitele nepoužívá zástupné znaky (nízké zabezpečení), jsou vyžadovány položky pro oba hostitele. Pokud jsou uživatelské účty často upravovány, může být tato duplikace těžkopádná a vést k chybám.
MariaDB Server 10.3 přidává podporu pro protokol proxy, který umožňuje připojení, aby si samo určilo svého hostitele. Protokol uvádí, že po navázání spojení by měl klient nejprve (než odpoví na handshake MySQL) odeslat záhlaví protokolu proxy. Tato hlavička obsahuje název hostitele, ze kterého by si měl server představit, že spojení pochází, místo použití skutečného názvu hostitele. Z bezpečnostních důvodů jsou proxy hlavičky povoleny pouze z adres uvedených v proměnné serveru „proxy_protocol_networks“. Tato funkce tak umožňuje vybraným IP adresám fungovat jako proxy, aniž by na backendu databáze měly skutečné uživatelské účty. Například hlavička „PROXY TCP4 192.168.0.1 192.168.0.2 56324 443“ dává serveru pokyn k ověření klienta, jako by se klient připojoval z 192.168.0.1.
Tuto funkci lze použít ke zjednodušení správy uživatelských účtů při používání MaxScale 2.2 a MariaDB Server 10.3. Chcete-li tuto funkci povolit v MaxScale, přidejte řádek „proxy_protocol=on“ do definice serveru v konfiguračním souboru MaxScale (obvykle by měl být přidán do všech sekcí serveru).
Příklad definice serveru MaxScale:
[MyServer1]
type=server
address=123.456.789.0
port=3306
protocol=MariaDBBackend
proxy_protocol=yes
Když se MaxScale pokusí vytvořit relaci klienta na serveru, MaxScale nejprve odešle proxy hlavičku s původním názvem hostitele klienta. Pokud je MaxScale IP nalezena v „proxy_protocol_networks“ serveru, je načtena hlavička a připojení ověřeno pomocí skutečné adresy klienta. Další informace o nastavení serveru naleznete v dokumentaci k serveru.
Za předpokladu, že MaxScale IP je „111.222.333.4“, přidejte do sekce [mysqld] v konfiguraci serveru následující:
proxy_protocol_networks = 111.222.333.4
S tímto nastavením příchozí klient „normal_user“ nemusí mít záznam pro hostitele „111.222.333.4“ v tabulce mysql.user-table. Je vyžadován pouze záznam pro skutečného klientského hostitele.
Získejte MariaDB MaxScale 2.2 a MariaDB Server 10.3 jako součást MariaDB TX 3.0, které jsou nyní k dispozici ke stažení.