- 1 Pendahuluan
- 2 Membuat Pengguna di MariaDB
- 3 Mengelola Hak Istimewa di MariaDB
- 3.1 3.1 Memberikan Hak Istimewa
- 3.2 3.2 Hak Istimewa yang Sering Digunakan
- 3.3 3.3 Pengaturan Hak Istimewa berdasarkan Kasus Penggunaan
- 3.4 3.4 Memeriksa Hak Istimewa yang Diberikan
- 3.5 3.5 Mencabut Hak Istimewa (Menghapus Izin)
- 3.6 3.6 Apa yang Harus Dilakukan Ketika Perubahan Hak Istimewa Tidak Berlaku
- 4 Menghapus Pengguna di MariaDB
- 5 Kesalahan Umum dan Solusi (FAQ)
- 6 Kesimpulan
Pendahuluan
1.1 Apakah Anda Ingin Mempelajari Cara Membuat Pengguna di MariaDB?
Apakah Anda pernah ingin membuat pengguna baru di MariaDB dan mengonfigurasi hak istimewa yang tepat?
Sebagai contoh, Anda mungkin pernah mengalami situasi berikut:
- Anda menjalankan
CREATE USERtetapi tidak dapat masuk - Anda memberikan hak istimewa menggunakan
GRANT, tetapi tidak diterapkan - Anda tidak yakin cara mengonfigurasi izin yang tepat di lingkungan produksi
- Anda ingin menghapus pengguna yang tidak diperlukan dengan aman
Jika Anda menghadapi masalah-masalah ini, artikel ini akan membantu Anda memahami sepenuhnya seluruh proses mulai dari membuat pengguna hingga mengelola hak istimewa dan menghapus pengguna di MariaDB.
1.2 Apa yang Akan Anda Pelajari dalam Artikel Ini
Artikel ini memberikan penjelasan terperinci tentang aspek-aspek berikut dari manajemen pengguna MariaDB:
- Cara membuat dan menghapus pengguna di MariaDB
- Cara memberikan dan mengelola hak istimewa (praktik terbaik untuk pengaturan izin yang tepat)
- Kesalahan umum dan cara mengatasinya
- Praktik operasional terbaik untuk lingkungan pengembangan dan produksi
Semua topik dijelaskan dengan contoh SQL yang ramah pemula, memungkinkan Anda belajar dan berlatih sekaligus.
1.3 Target Audiens
Artikel ini ditujukan untuk:
- Pemula : Mereka yang belajar manajemen pengguna MariaDB untuk pertama kalinya
- Insinyur : Mereka yang ingin mengonfigurasi izin yang tepat di lingkungan pengembangan
- Administrator Basis Data : Mereka yang bertujuan memperkuat keamanan di lingkungan produksi
Bahkan jika Anda baru mengenal MariaDB, panduan ini menyediakan informasi praktis yang dapat Anda terapkan dengan percaya diri dalam operasi dunia nyata.
Membuat Pengguna di MariaDB
2.1 Perintah Dasar Pembuatan Pengguna
Di MariaDB, Anda membuat pengguna baru menggunakan perintah CREATE USER.
Anda dapat menentukan nama pengguna dan kata sandi dengan sintaks berikut:
CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';
Sebagai contoh, untuk membuat pengguna bernama yamada pada localhost dengan kata sandi password123:
CREATE USER 'yamada'@'localhost' IDENTIFIED BY 'password123';
Setelah menjalankan perintah ini, pengguna yamada akan dibuat dan diizinkan masuk hanya dari localhost saja (login hanya diizinkan pada server itu sendiri).
2.2 Contoh Pembuatan Pengguna Berdasarkan Kasus Penggunaan
Saat membuat pengguna di MariaDB, Anda dapat menentukan dari mana koneksi diizinkan menggunakan bidang hostname.
Penting untuk mengonfigurasi pengaturan secara tepat berdasarkan kasus penggunaan Anda.
| Case | Command Example | Description |
|---|---|---|
| Local Environment (Development) | CREATE USER 'dev_user'@'localhost' IDENTIFIED BY 'password'; | User dedicated to development environment |
| Allow Remote Connections | CREATE USER 'remote_user'@'%' IDENTIFIED BY 'password'; | Allow connections from any host (security caution required) |
| Allow Connection from Specific IP | CREATE USER 'admin'@'192.168.1.100' IDENTIFIED BY 'password'; | Restrict access to a specific IP address only |
| Allow Connection from Specific Subnet | CREATE USER 'network_user'@'192.168.1.%' IDENTIFIED BY 'password'; | Allow only machines with IP addresses in the 192.168.1.x range |
Menggunakan '%' memungkinkan koneksi dari semua host, tetapi
ini menimbulkan risiko keamanan yang signifikan dan tidak direkomendasikan untuk lingkungan produksi.
Di produksi, sebaiknya menentukan alamat IP atau mengonfigurasi akses melalui VPN.
2.3 Catatan Penting Saat Membuat Pengguna
Ada beberapa pertimbangan penting saat membuat pengguna.
(1) Periksa Pengguna yang Ada
Sebelum membuat pengguna, penting untuk memastikan bahwa pengguna yang sama belum ada.
Anda dapat menampilkan pengguna yang saat ini terdaftar dengan perintah berikut:
SELECT user, host FROM mysql.user;
Contoh output:
+---------+-----------+
| user | host |
+---------+-----------+
| root | localhost |
| yamada | localhost |
+---------+-----------+
Jika pengguna dengan username@hostname yang sama sudah ada, menjalankan CREATE USER akan menghasilkan error.
(2) Apa yang Harus Dilakukan Jika Pengguna Sudah Ada
Di MariaDB, Anda tidak dapat menimpa pengguna yang sudah ada dengan membuatnya kembali.
Jika pengguna yang sama sudah ada, gunakan salah satu pendekatan berikut:
- Ubah kata sandi pengguna yang ada
ALTER USER 'yamada'@'localhost' IDENTIFIED BY 'newpassword123';
- Hapus pengguna yang tidak diperlukan dan buat yang baru
DROP USER 'yamada'@'localhost'; CREATE USER 'yamada'@'localhost' IDENTIFIED BY 'password123';
Mengelola Hak Istimewa di MariaDB
3.1 Memberikan Hak Istimewa
Sintaks Dasar
Di MariaDB, Anda dapat memberikan hak istimewa kepada pengguna menggunakan perintah GRANT.
GRANT privilege ON database_name.table_name TO 'username'@'hostname';
Sebagai contoh, untuk memberikan semua hak istimewa pada test_db kepada pengguna yamada:
GRANT ALL PRIVILEGES ON test_db.* TO 'yamada'@'localhost';
Makna perintah ini:
ALL PRIVILEGES: Memberikan semua hak istimewatest_db.*: Berlaku untuk semua tabel dalam basis datatest_db'yamada'@'localhost': Berlaku untuk penggunayamadayang masuk dari localhost
3.2 Hak Istimewa yang Sering Digunakan
Di MariaDB, Anda dapat memberikan hak istimewa seperti berikut:
| Privilege | Description |
|---|---|
ALL PRIVILEGES | Grant all privileges |
SELECT | Read data |
INSERT | Insert data |
UPDATE | Update data |
DELETE | Delete data |
CREATE | Create new tables or databases |
DROP | Drop databases or tables |
GRANT OPTION | Grant privileges to other users |
ALTER | Modify table structure |
EXECUTE | Execute stored procedures or functions |
RELOAD | Reload server settings |
Jika Anda hanya ingin mengizinkan operasi tertentu, disarankan untuk memberikan hak istimewa secara individual daripada memberikan semuanya.
3.3 Pengaturan Hak Istimewa berdasarkan Kasus Penggunaan
Penting untuk menetapkan hak istimewa yang tepat untuk setiap situasi.
| Situation | Recommended Privileges | Command Example |
|---|---|---|
| WordPress Operator | SELECT, INSERT, UPDATE, DELETE | GRANT SELECT, INSERT, UPDATE, DELETE ON wp_db.* TO 'wp_user'@'localhost'; |
| Developer (Development Environment) | ALL PRIVILEGES | GRANT ALL PRIVILEGES ON dev_db.* TO 'dev_user'@'%'; |
| Read-Only User | SELECT only | GRANT SELECT ON analytics_db.* TO 'readonly'@'localhost'; |
| Database Administrator (Production Environment) | ALL PRIVILEGES (restricted) | GRANT ALL PRIVILEGES ON production_db.* TO 'admin'@'localhost'; |
Di lingkungan produksi, hindari memberikan ALL PRIVILEGES terlalu mudah.
3.4 Memeriksa Hak Istimewa yang Diberikan
Untuk memeriksa hak istimewa yang diberikan, gunakan perintah SHOW GRANTS.
SHOW GRANTS FOR 'username'@'hostname';
Sebagai contoh, untuk memeriksa hak istimewa pengguna yamada:
SHOW GRANTS FOR 'yamada'@'localhost';
Contoh output:
+-----------------------------------------------------------------------------------+
| Grants for yamada@localhost |
+-----------------------------------------------------------------------------------+
| GRANT SELECT, INSERT, UPDATE ON test_db.* TO 'yamada'@'localhost' |
+-----------------------------------------------------------------------------------+
Ini menunjukkan hak istimewa yang saat ini diberikan kepada pengguna.
3.5 Mencabut Hak Istimewa (Menghapus Izin)
Untuk mencabut hak istimewa tertentu dari pengguna, gunakan perintah REVOKE.
Sintaks Dasar
REVOKE privilege ON database_name.table_name FROM 'username'@'hostname';
Sebagai contoh, untuk mencabut hak istimewa UPDATE dari pengguna yamada:
REVOKE UPDATE ON test_db.* FROM 'yamada'@'localhost';
Mencabut Semua Hak Istimewa
REVOKE ALL PRIVILEGES ON *.* FROM 'yamada'@'localhost';
3.6 Apa yang Harus Dilakukan Ketika Perubahan Hak Istimewa Tidak Berlaku
Di MariaDB, perubahan hak istimewa mungkin tidak diterapkan secara langsung. Jika itu terjadi, jalankan perintah berikut:
FLUSH PRIVILEGES;
Menjalankan perintah ini memaksa MariaDB memuat ulang tabel hak istimewa sehingga perubahan Anda berlaku segera.

Menghapus Pengguna di MariaDB
4.1 Menghapus Pengguna
Untuk menghapus pengguna MariaDB, gunakan perintah DROP USER.
Sintaks Dasar
DROP USER 'username'@'hostname';
Sebagai contoh, untuk menghapus pengguna yamada dari localhost:
DROP USER 'yamada'@'localhost';
Setelah menjalankan perintah ini, pengguna yamada akan sepenuhnya dihapus dari sistem MariaDB.
4.2 Hal yang Perlu Diperiksa Sebelum Menghapus Pengguna
Sebelum menghapus pengguna, ada beberapa pemeriksaan penting yang harus Anda lakukan.
Berhati-hatilah agar tidak menghapus pengguna yang diperlukan secara tidak sengaja.
(1) Periksa Apakah Pengguna Target Ada
Di MariaDB, mencoba menghapus pengguna yang tidak ada akan menyebabkan error.
Jalankan perintah berikut untuk memastikan pengguna target ada:
SELECT user, host FROM mysql.user;
Contoh output:
+---------+-----------+
| user | host |
+---------+-----------+
| root | localhost |
| yamada | localhost |
| admin | 192.168.1.100 |
+---------+-----------+
Jika pengguna yamada muncul dalam daftar ini, pengguna dapat dihapus.
(2) Periksa Apakah Pengguna Sedang Terhubung
Di MariaDB, jika pengguna yang Anda hapus saat ini memiliki sesi aktif,
penghapusan mungkin tidak berlaku segera untuk sesi tersebut.
Periksa apakah pengguna aktif menggunakan perintah berikut:
SELECT user, host FROM information_schema.processlist;
Contoh output:
+---------+-----------+
| user | host |
+---------+-----------+
| yamada | localhost |
| root | localhost |
+---------+-----------+
Dalam contoh ini, pengguna yamada saat ini aktif, jadi Anda harus menghentikan sesi sebelum menghapusnya.
(3) Paksa Menghentikan Sesi
Anda dapat memaksa menghentikan sesi tertentu menggunakan perintah KILL.
- Pertama, periksa ID proses (kolom
ID):SELECT id, user, host FROM information_schema.processlist;
Contoh output:
+----+---------+-----------+
| id | user | host |
+----+---------+-----------+
| 10 | yamada | localhost |
| 11 | root | localhost |
+----+---------+-----------+
- Jika
yamadamemiliki ID proses10, hentikan dengan:KILL 10;
4.3 Pembersihan Pasca-Penghapusan
Setelah menghapus pengguna, informasi hak istimewa yang tersisa mungkin masih ada di basis data.
Dalam kasus seperti itu, jalankan FLUSH PRIVILEGES untuk menyegarkan tabel hak istimewa.
FLUSH PRIVILEGES;
Menjalankan ini memastikan bahwa informasi pengguna yang dihapus sepenuhnya dihapus dari sistem basis data.
4.4 Catatan Penting Saat Menghapus Pengguna
Ingat poin-poin berikut saat menghapus pengguna:
- Pengguna yang dihapus tidak dapat dipulihkan
- Setelah Anda menjalankan
DROP USER, pengguna yang dihapus tidak dapat dipulihkan . - Jika terhapus secara tidak sengaja, Anda harus membuat ulang pengguna menggunakan
CREATE USER.
- Hak Istimewa Mungkin Perlu Dipindahkan
- Jika pengguna yang dihapus bertanggung jawab atas operasi basis data kritis, Anda harus memindahkan hak istimewa yang diperlukan ke pengguna lain yang sesuai sebelumnya.
- Berhati-hatilah di Lingkungan Produksi
- Di lingkungan produksi, penghapusan mendadak dapat menyebabkan downtime sistem atau kesalahan.
- Sangat disarankan untuk menganalisis dampak terlebih dahulu dan membuat cadangan .
Kesalahan Umum dan Solusi (FAQ)
Saat mengelola pengguna di MariaDB, Anda mungkin menemui berbagai kesalahan.
Bagian ini menjelaskan kesalahan paling umum, penyebabnya, dan cara mengatasinya.
5.1 FAQ Pemula
Q1: Apa perbedaan antara manajemen pengguna MariaDB dan MySQL?
MariaDB dan MySQL umumnya menggunakan sintaks yang sama, tetapi ada beberapa perbedaan fitur.
| Comparison Item | MySQL | MariaDB |
|---|---|---|
CREATE USER | Supported | Supported |
SHOW GRANTS FOR | Supported | Supported |
DROP USER | Supported | Supported |
CREATE ROLE | MySQL 8.0 and later | MariaDB 10.0 and later |
MariaDB mendukung CREATE ROLE, memungkinkan manajemen pengguna berbasis peran.
Q2: Apa perbedaan antara localhost dan %?
Dalam manajemen pengguna MariaDB, menentukan nama host sangat penting.
localhost: Mengizinkan koneksi hanya dari mesin lokal%: Mengizinkan koneksi dari host manapun (risiko keamanan)192.168.1.100: Mengizinkan koneksi hanya dari alamat IP tertentu192.168.1.%: Mengizinkan koneksi hanya dari subnet tertentu (192.168.1.*)
5.2 Pemecahan Masalah
Q3: Cara Memperbaiki “ERROR 1396 (HY000): Operasi CREATE USER gagal”
Penyebab: Pengguna yang ditentukan sudah ada, sehingga pengguna baru tidak dapat dibuat.
Solusi: Periksa apakah pengguna ada dan hapus atau ubah jika diperlukan.
- Periksa pengguna yang ada
SELECT user, host FROM mysql.user WHERE user='yamada';
- Hapus jika tidak diperlukan
DROP USER 'yamada'@'localhost';
- Ubah kata sandi sebagai gantinya
ALTER USER 'yamada'@'localhost' IDENTIFIED BY 'newpassword123';
Q4: Hak Istimewa yang Diberikan dengan GRANT Tidak Diterapkan
Penyebab: Cache hak istimewa MariaDB belum disegarkan.
Solusi: Jalankan FLUSH PRIVILEGES untuk memuat ulang hak istimewa.
FLUSH PRIVILEGES;
Q5: Tidak Dapat Terhubung Secara Remote Meskipun Menggunakan %
Penyebab: Koneksi remote mungkin dibatasi dalam file konfigurasi MariaDB.
Solusi:
- Edit file konfigurasi
/etc/mysql/my.cnf(atau/etc/mysql/mariadb.conf.d/50-server.cnf) dan ubah nilaibind-addressmenjadi0.0.0.0.bind-address = 0.0.0.0
- Restart MariaDB
sudo systemctl restart mariadb
- Gunakan
%dalam perintahGRANTuntuk mengizinkan koneksiGRANT ALL PRIVILEGES ON test_db.* TO 'remote_user'@'%' IDENTIFIED BY 'password';
Q6: Mendapatkan Kesalahan “Access denied for user ‘user’@’host’”
Penyebab: Pengguna tidak memiliki hak istimewa yang tepat, atau kata sandi salah.
Solusi:
- Periksa hak istimewa saat ini
SHOW GRANTS FOR 'user'@'host';
- Berikan hak istimewa yang sesuai
GRANT ALL PRIVILEGES ON database_name.* TO 'user'@'host';
- Verifikasi bahwa Anda masuk dengan kata sandi yang benar
mysql -u user -p
Kesimpulan
Manajemen pengguna MariaDB penting untuk meningkatkan keamanan basis data dan efisiensi operasional.
Dalam artikel ini, kami membahas pembuatan pengguna, pengelolaan hak istimewa, penghapusan pengguna, serta kesalahan umum beserta solusinya secara mendetail.
6.1 Ringkasan
① Membuat Pengguna di MariaDB
- Buat pengguna baru menggunakan perintah
CREATE USER - Batasi akses menggunakan
@'hostname' - Selalu periksa pengguna yang sudah ada sebelum membuat yang baru
② Mengelola Hak Istimewa di MariaDB
- Gunakan
GRANTuntuk memberikan hak istimewa minimum yang diperlukan - Gunakan
SHOW GRANTSuntuk memverifikasi hak istimewa saat ini - Gunakan
REVOKEuntuk menghapus hak istimewa yang tidak diperlukan - Terapkan perubahan dengan
FLUSH PRIVILEGES
③ Menghapus Pengguna di MariaDB
- Hapus pengguna menggunakan perintah
DROP USER - Periksa sesi aktif sebelum penghapusan
- Bersihkan cache hak istimewa dengan
FLUSH PRIVILEGES
④ Kesalahan Umum dan Solusinya
ERROR 1396 (HY000)→ Periksa apakah pengguna sudah ada dan hapus jika diperlukan- Perubahan hak istimewa tidak diterapkan → Jalankan
FLUSH PRIVILEGES Access denied for user→ Verifikasi hak istimewa dan kata sandi- Tidak dapat terhubung secara remote dengan
%→ Sesuaikan konfigurasibind-address
6.2 Praktik Terbaik untuk Manajemen Pengguna MariaDB
- Berikan hanya hak istimewa minimum yang dibutuhkan
- Hindari memberikan
ALL PRIVILEGESsecara sembarangan - Batasi pengguna produksi ke
SELECT, INSERT, UPDATE, DELETEbila memungkinkan - Selalu verifikasi perubahan hak istimewa
- Gunakan
SHOW GRANTSuntuk memastikan konfigurasi sudah benar - Analisis dampak sebelum menghapus pengguna
- Berhati-hatilah di lingkungan produksi dan buat cadangan
- Terapkan praktik keamanan yang kuat
- Terapkan pembatasan IP untuk koneksi remote
- Tetapkan kata sandi yang kuat untuk pengguna root
- Secara rutin hapus pengguna dan hak istimewa yang tidak diperlukan
6.3 Pemikiran Akhir
Melalui panduan ini, Anda telah mempelajari semua hal mulai dari dasar hingga teknik lanjutan dalam manajemen pengguna MariaDB.
Gunakan pengetahuan ini untuk mencapai administrasi basis data yang aman dan efisien.
Kami akan terus membagikan wawasan berguna seputar MariaDB, jadi tetap ikuti kami! 🚀


