sql >> Databasteknik >  >> RDS >> MariaDB

Förenkla hanteringen av användarkonton med MariaDB MaxScale 2.2 och MariaDB Server 10.3

Att konfigurera databasanvändarkonton för MariaDB MaxScale och ett backend-kluster har vanligtvis krävt en dubbelinsats. Detta beror på att en kontopost måste finnas för både den verkliga klientvärden och MaxScale-värden. MaxScale autentiserar inkommande användare mot användarposten med den verkliga klientvärden. När MaxScale skapar routingsessionen använder den klientens användarnamn och lösenordskryptering för att autentisera klienten till backend. Backend ser anslutningen som kommer från maskinen som kör MaxScale. Såvida inte värdnamnet använder jokertecken (låg säkerhet) krävs inlägg för båda värdarna. Om användarkonton ofta ändras kan denna dubblering bli besvärlig och leda till fel.

MariaDB Server 10.3 lägger till stöd för proxyprotokollet som tillåter en anslutning att själv utse sin värd. Protokollet säger att när en anslutning har upprättats ska klienten först (innan den svarar på MySQL-handskakningen) skicka en proxyprotokollhuvud. Denna rubrik innehåller värdnamnet som servern ska föreställa sig att anslutningen härrör från istället för att använda det riktiga värdnamnet. Av säkerhetsskäl är proxyrubriker endast tillåtna från adresser listade i servervariabeln "proxy_protocol_networks". Funktionen tillåter alltså utvalda ip-adresser att fungera som proxyer utan att ha faktiska användarkonton på databasens backend. Som ett exempel, rubriken "PROXY TCP4 192.168.0.1 192.168.0.2 56324 443" instruerar servern att autentisera klienten som om klienten ansluter från 192.168.0.1.

Den här funktionen kan användas för att förenkla hanteringen av användarkonton när du använder MaxScale 2.2 och MariaDB Server 10.3. För att aktivera funktionen i MaxScale, lägg till raden "proxy_protocol=on" till en serverdefinition i din MaxScale-konfigurationsfil (vanligtvis bör denna läggas till i alla serversektioner).

Ett exempel på en MaxScale-serverdefinition:

[MyServer1]
type=server
address=123.456.789.0
port=3306
protocol=MariaDBBackend
proxy_protocol=yes

När MaxScale försöker skapa en klientsession på servern, skickar MaxScale först ett proxyhuvud med klientens ursprungliga värdnamn. Om MaxScale IP hittas inom "proxy_protocol_networks" på servern läses rubriken och anslutningen autentiseras med den verkliga klientadressen. För serverinställning, se serverdokumentationen för mer information.

Förutsatt att MaxScale IP är "111.222.333.4", lägg till följande i [mysqld]-sektionen i serverkonfigurationen:

proxy_protocol_networks = 111.222.333.4

Med dessa inställningar behöver en inkommande klient "normal_user" inte ha en post för värd "111.222.333.4" i mysql.user-table. Endast en post för den verkliga klientvärden krävs.

Skaffa MariaDB MaxScale 2.2 och MariaDB Server 10.3 som en del av MariaDB TX 3.0, tillgänglig för nedladdning nu.


  1. Byt namn på en användardefinierad datatyp i SQL Server (T-SQL)

  2. Returnera tabellprivilegier från en länkad server i SQL Server (T-SQL-exempel)

  3. Hur man ställer in och loggar in som root-användare i MySQL

  4. SQL Server 2017:Importera CSV-data från Linux till Salesforce med SSIS