User Management dan Privileges di MySQL

Apa Itu User Management di MySQL?

User Management dalam MySQL adalah proses pembuatan, pengelolaan, dan penghapusan akun pengguna serta menetapkan hak akses atau privileges kepada mereka.

Setiap akun pengguna di MySQL terdiri dari:

  • Username
  • Hostname (alamat asal user)
  • Password
  • Privileges (izin atau hak akses)

Membuat User Baru di MySQL

Sintaks Membuat User

CREATE USER 'nama_user'@'host' IDENTIFIED BY 'password';

Contoh

CREATE USER 'johndoe'@'localhost' IDENTIFIED BY 'securepass123';

Memberikan Hak Akses (GRANT Privileges)

Sintaks Memberikan Hak Akses

GRANT privilege1, privilege2 ON database.nama_tabel TO 'nama_user'@'host';

Contoh 1: Akses Penuh ke Seluruh Tabel di Database

GRANT ALL PRIVILEGES ON mydb.* TO 'johndoe'@'localhost';

Contoh 2: Hanya SELECT dan INSERT pada Tabel Tertentu

GRANT SELECT, INSERT ON mydb.customers TO 'johndoe'@'localhost';

Contoh 3: Hanya Boleh Login (Tanpa Akses Database)

CREATE USER 'readonly'@'localhost' IDENTIFIED BY 'readonlypass';

Daftar Privileges yang Umum Digunakan

PrivilegeDeskripsi
ALL PRIVILEGESSemua hak akses
SELECTMembaca data dari tabel
INSERTMenambahkan data ke tabel
UPDATEMengubah data yang sudah ada
DELETEMenghapus data dari tabel
CREATEMembuat database atau tabel
DROPMenghapus database atau tabel
ALTERMengubah struktur tabel
GRANT OPTIONMemberikan hak akses ke user lain

Melihat Hak Akses Pengguna

Melihat Semua User di MySQL

SELECT user, host FROM mysql.user;

Melihat Hak Akses User Tertentu

SHOW GRANTS FOR 'johndoe'@'localhost';

Menghapus User di MySQL

Sintaks Menghapus User

DROP USER 'nama_user'@'host';

Contoh

DROP USER 'johndoe'@'localhost';

Mengubah Password User

Cara 1: Dengan ALTER USER

ALTER USER 'nama_user'@'host' IDENTIFIED BY 'password_baru';

Contoh

ALTER USER 'johndoe'@'localhost' IDENTIFIED BY 'newsecurepass';

Mencabut Hak Akses (REVOKE)

Sintaks REVOKE

REVOKE privilege1, privilege2 ON database.tabel FROM 'nama_user'@'host';

Contoh

REVOKE INSERT, UPDATE ON mydb.customers FROM 'johndoe'@'localhost';

Menyimpan Perubahan Privileges (Opsional)

Sistem hak akses MySQL biasanya langsung aktif setelah GRANT atau REVOKE, tapi Anda bisa menyegarkan secara manual dengan:

FLUSH PRIVILEGES;

Tips Keamanan dalam User Management

🔒 Gunakan prinsip least privilege – Berikan hanya hak akses yang benar-benar diperlukan.
🔒 Hindari penggunaan akun root untuk koneksi aplikasi.
🔒 Ganti password secara berkala.
🔒 Gunakan host tertentu (localhost, IP tertentu) agar user tidak bisa login dari sembarang tempat.
🔒 Audit user dan privileges secara rutin.

Kesimpulan

MySQL menyediakan fitur user management yang powerful untuk mengontrol siapa yang bisa mengakses database dan apa saja yang bisa mereka lakukan. Dengan memanfaatkan perintah seperti CREATE USER, GRANT, REVOKE, dan DROP USER, Anda dapat membangun sistem yang lebih aman dan terstruktur.