Mengonfigurasi akun pengguna database untuk MariaDB MaxScale dan cluster backend biasanya memerlukan upaya duplikat. Ini karena entri akun harus ada untuk host klien nyata dan host MaxScale. MaxScale mengotentikasi pengguna yang masuk terhadap entri pengguna dengan host klien nyata. Saat MaxScale membuat sesi perutean, ia menggunakan nama pengguna dan kata sandi klien untuk mengautentikasi klien ke backend. Backend melihat koneksi yang berasal dari mesin yang menjalankan MaxScale. Kecuali nama host menggunakan wildcard (keamanan rendah), entri untuk kedua host diperlukan. Jika akun pengguna sering diubah, duplikasi ini dapat menjadi rumit dan menyebabkan kesalahan.
MariaDB Server 10.3 menambahkan dukungan untuk protokol proxy yang memungkinkan koneksi untuk menunjuk sendiri host-nya. Protokol menyatakan bahwa ketika koneksi telah dibuat, klien harus terlebih dahulu (sebelum menanggapi jabat tangan MySQL) mengirim header protokol proxy. Header ini berisi nama host yang harus dibayangkan server sebagai asal dari koneksi alih-alih menggunakan nama host asli. Untuk alasan keamanan, header proxy hanya diperbolehkan dari alamat yang terdaftar di variabel server “proxy_protocol_networks”. Dengan demikian, fitur ini memungkinkan alamat ip terpilih untuk bertindak sebagai proxy tanpa memiliki akun pengguna yang sebenarnya di backend database. Sebagai contoh, header “PROXY TCP4 192.168.0.1 192.168.0.2 56324 443” memerintahkan server untuk mengautentikasi klien seolah-olah klien terhubung dari 192.168.0.1.
Fitur ini dapat digunakan untuk mempermudah pengelolaan akun pengguna saat menggunakan MaxScale 2.2 dan MariaDB Server 10.3. Untuk mengaktifkan fitur di MaxScale, tambahkan baris “proxy_protocol=on” ke definisi server di file konfigurasi MaxScale Anda (biasanya ini harus ditambahkan ke semua bagian server).
Contoh definisi server MaxScale:
[MyServer1]
type=server
address=123.456.789.0
port=3306
protocol=MariaDBBackend
proxy_protocol=yes
Ketika MaxScale mencoba membuat sesi klien di server, MaxScale pertama-tama mengirimkan header proxy dengan nama host asli klien. Jika IP MaxScale ditemukan dalam "proxy_protocol_networks" server, header dibaca dan koneksi diautentikasi menggunakan alamat klien sebenarnya. Untuk pengaturan server, lihat dokumentasi server untuk informasi lebih lanjut.
Dengan asumsi MaxScale IP adalah “111.222.333.4”, tambahkan berikut ini ke bagian [mysqld] dari konfigurasi server:
proxy_protocol_networks = 111.222.333.4
Dengan pengaturan ini, klien masuk "normal_user" tidak perlu memiliki entri untuk host "111.222.333.4" di tabel mysql.user. Hanya entri untuk host klien sebenarnya yang diperlukan.
Dapatkan MariaDB MaxScale 2.2 dan MariaDB Server 10.3 sebagai bagian dari MariaDB TX 3.0, tersedia untuk diunduh sekarang.