MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Vereinfachen Sie die Verwaltung von Benutzerkonten mit MariaDB MaxScale 2.2 und MariaDB Server 10.3

Das Konfigurieren von Datenbankbenutzerkonten für MariaDB MaxScale und einen Backend-Cluster erforderte normalerweise doppelten Aufwand. Dies liegt daran, dass sowohl für den echten Client-Host als auch für den MaxScale-Host ein Kontoeintrag vorhanden sein muss. MaxScale authentifiziert eingehende Benutzer anhand des Benutzereintrags mit dem echten Client-Host. Wenn MaxScale die Routing-Sitzung erstellt, verwendet es den Benutzernamen und das Passwort-Scramble des Clients, um den Client gegenüber dem Backend zu authentifizieren. Das Backend sieht, dass die Verbindung von der Maschine kommt, auf der MaxScale läuft. Sofern der Hostname keine Wildcards verwendet (geringe Sicherheit), sind Einträge für beide Hosts erforderlich. Wenn Benutzerkonten häufig geändert werden, kann diese Duplizierung umständlich werden und zu Fehlern führen.

MariaDB Server 10.3 fügt Unterstützung für das Proxy-Protokoll hinzu, das es einer Verbindung ermöglicht, ihren Host selbst zu bestimmen. Das Protokoll besagt, dass der Client nach dem Verbindungsaufbau zunächst (bevor er auf den MySQL-Handshake antwortet) einen Proxy-Protokoll-Header senden soll. Dieser Header enthält den Hostnamen, von dem sich der Server vorstellen soll, dass die Verbindung stammt, anstatt den echten Hostnamen zu verwenden. Aus Sicherheitsgründen sind Proxy-Header nur von Adressen erlaubt, die in der Servervariablen „proxy_protocol_networks“ aufgeführt sind. Die Funktion ermöglicht es daher ausgewählten IP-Adressen, als Proxys zu fungieren, ohne dass tatsächliche Benutzerkonten im Datenbank-Backend vorhanden sind. Beispielsweise weist der Header „PROXY TCP4 192.168.0.1 192.168.0.2 56324 443“ den Server an, den Client so zu authentifizieren, als ob der Client eine Verbindung von 192.168.0.1 her herstellen würde.

Diese Funktion kann verwendet werden, um die Verwaltung von Benutzerkonten bei der Verwendung von MaxScale 2.2 und MariaDB Server 10.3 zu vereinfachen. Um die Funktion in MaxScale zu aktivieren, fügen Sie die Zeile „proxy_protocol=on“ zu einer Serverdefinition in Ihrer MaxScale-Konfigurationsdatei hinzu (normalerweise sollte dies zu allen Serverabschnitten hinzugefügt werden).

Ein Beispiel für eine MaxScale-Serverdefinition:

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

Wenn MaxScale versucht, eine Client-Session auf dem Server zu erstellen, sendet MaxScale zunächst einen Proxy-Header mit dem ursprünglichen Hostnamen des Clients. Wenn die MaxScale-IP innerhalb der „proxy_protocol_networks“ des Servers gefunden wird, wird der Header gelesen und die Verbindung mit der echten Client-Adresse authentifiziert. Weitere Informationen zu den Servereinstellungen finden Sie in der Serverdokumentation.

Angenommen, MaxScale IP ist „111.222.333.4“, fügen Sie Folgendes zum [mysqld]-Abschnitt der Serverkonfiguration hinzu:

proxy_protocol_networks = 111.222.333.4

Mit diesen Einstellungen muss ein eingehender Client „normal_user“ keinen Eintrag für den Host „111.222.333.4“ in der mysql.user-Tabelle haben. Lediglich ein Eintrag für den echten Client-Host ist erforderlich.

Holen Sie sich MariaDB MaxScale 2.2 und MariaDB Server 10.3 als Teil von MariaDB TX 3.0, jetzt zum Download verfügbar.