Secara default, user database di MariaDB biasanya hanya bisa diakses dari localhost. Namun ada kalanya kita perlu mengakses database dari luar server, misalnya untuk keperluan integrasi aplikasi, monitoring, atau development jarak jauh. Artikel ini membahas langkah-langkah membuat user baru di MariaDB yang bisa diakses dari IP manapun, lengkap dengan konfigurasi tambahan yang sering terlewat.
1. Masuk ke MariaDB
Buka terminal dan login ke MariaDB menggunakan akun root:
mysql -u root -p
2. Buat User Baru dengan Akses dari Semua IP
Gunakan wildcard % pada bagian host untuk mengizinkan koneksi dari IP manapun:
CREATE USER 'nama_user'@'%' IDENTIFIED BY 'password_kuat';
3. Berikan Hak Akses (Privileges)
Untuk memberi akses ke database tertentu saja:
GRANT ALL PRIVILEGES ON nama_database.* TO 'nama_user'@'%';
Atau jika ingin memberi akses ke seluruh database (tidak disarankan untuk server production):
GRANT ALL PRIVILEGES ON *.* TO 'nama_user'@'%';
4. Terapkan Perubahan
FLUSH PRIVILEGES;
5. Keluar dari MariaDB
EXIT;
Konfigurasi Tambahan di Sisi Server
Membuat user saja belum cukup. Ada dua hal lagi yang perlu disesuaikan agar akses dari luar benar-benar berfungsi.
a. Mengubah Bind Address MariaDB
Buka file konfigurasi MariaDB (biasanya berada di /etc/mysql/mariadb.conf.d/50-server.cnf pada Ubuntu/Debian):
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Cari baris berikut:
bind-address = 127.0.0.1
Ubah menjadi:
bind-address = 0.0.0.0
Setelah itu, restart service MariaDB agar perubahan diterapkan:
sudo systemctl restart mariadb
b. Membuka Port di Firewall
Jika server menggunakan ufw, buka port default MariaDB (3306):
sudo ufw allow 3306/tcp
Catatan Keamanan
Membuka akses database dengan host % (semua IP) memiliki risiko keamanan yang cukup signifikan, terutama jika server memiliki IP publik. Beberapa hal yang perlu diperhatikan:
- Gunakan password yang kuat dan panjang.
- Jika memungkinkan, batasi akses ke subnet tertentu, misalnya
'nama_user'@'192.168.1.%', alih-alih membuka akses penuh dengan%. - Pertimbangkan menggunakan SSH tunnel atau VPN sebagai alternatif yang lebih aman daripada membuka port 3306 langsung ke publik.
- Jika akses ini hanya diperlukan sementara untuk keperluan development atau testing, jangan lupa mencabut kembali akses tersebut setelah selesai digunakan.
Konfigurasi ini perlu dilakukan dengan hati-hati, terutama pada server yang menyimpan data sensitif seperti sistem informasi rumah sakit atau aplikasi yang menangani data pribadi pengguna.