BAB 16: User & Hak Akses MySQL – Cara Membuat User, GRANT, REVOKE, dan Role

BAB 16: User & Hak Akses MySQL – Cara Membuat User, GRANT, REVOKE, dan Role

Dalam MySQL, user adalah akun yang digunakan untuk mengakses database. Setiap user memiliki hak akses (privileges) yang menentukan apa saja yang boleh dan tidak boleh dilakukan, seperti membaca data, menambahkan data, atau menghapus database.

Pengelolaan user dan hak akses sangat penting untuk:

  • Keamanan database
  • Pembatasan akses data
  • Pengelolaan tim developer

2. Membuat User MySQL

Perintah CREATE USER digunakan untuk membuat user baru.

Sintaks dasar:

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

Contoh membuat user:

CREATE USER 'admin_app'@'localhost' IDENTIFIED BY 'password123';

Keterangan:

  • nama_user → nama akun
  • host → asal koneksi (localhost, %, atau IP tertentu)

3. Memberi Hak Akses (GRANT)

Perintah GRANT digunakan untuk memberikan hak akses kepada user.

Contoh memberi hak akses tertentu:

GRANT SELECT, INSERT, UPDATE ON db_mahasiswa.* 
TO 'admin_app'@'localhost';

Memberi semua hak akses:

GRANT ALL PRIVILEGES ON db_mahasiswa.* 
TO 'admin_app'@'localhost';

Setelah GRANT:

FLUSH PRIVILEGES;

4. Mencabut Hak Akses (REVOKE)

Perintah REVOKE digunakan untuk mencabut hak akses dari user.

Contoh REVOKE hak akses:

REVOKE INSERT ON db_mahasiswa.* 
FROM 'admin_app'@'localhost';

5. Role User

Role adalah kumpulan hak akses yang dapat diberikan ke banyak user sekaligus. Fitur role tersedia pada MySQL versi 8 ke atas.

a. Membuat role

CREATE ROLE 'role_admin';

b. Memberi hak akses ke role

GRANT SELECT, INSERT, UPDATE, DELETE 
ON db_mahasiswa.* TO 'role_admin';

c. Memberi role ke user

GRANT 'role_admin' TO 'admin_app'@'localhost';

d. Mengaktifkan role

SET DEFAULT ROLE 'role_admin' TO 'admin_app'@'localhost';

6. Melihat Hak Akses User

SHOW GRANTS FOR 'admin_app'@'localhost';

Kesimpulan

Manajemen user dan hak akses merupakan aspek penting dalam keamanan database MySQL. Dengan memahami cara membuat user, memberikan dan mencabut hak akses menggunakan GRANT dan REVOKE, serta memanfaatkan role, pengelolaan database menjadi lebih aman, terstruktur, dan profesional.