Manajemen User, Role, dan Privilege dalam MySQL

 

Latar Belakang

Dalam pengelolaan basis data, pengaturan pengguna, peran (role), dan hak akses (privilege) menjadi aspek penting untuk menjamin keamanan dan efisiensi operasional. Manajemen pengguna memungkinkan administrator database untuk mengontrol siapa yang dapat mengakses data dan tindakan apa yang dapat mereka lakukan. Oleh karena itu, pada praktikum ini, akan dipelajari bagaimana membuat user, role, memberikan dan mencabut privilege, serta melakukan monitoring aktivitas pengguna.

Permasalahan

  1. Bagaimana cara membuat user dalam MySQL?

  2. Bagaimana cara menghapus user dalam MySQL?

  3. Bagaimana cara membuat role dalam MySQL?

  4. Bagaimana memberikan privilege kepada role dan user?

  5. Bagaimana melakukan pengujian sebelum dan sesudah pemberian role?

  6. Bagaimana cara memonitor aktivitas pengguna dalam MySQL?


Solusi / Skenario Aktivitas

1. Pembuatan User dalam MySQL

Query:

CREATE USER 'reny'@'localhost' IDENTIFIED BY 'password123';
CREATE USER 'andara'@'localhost' IDENTIFIED BY 'password123';
CREATE USER 'diana'@'localhost' IDENTIFIED BY 'password123';
CREATE USER 'andara1'@'localhost' IDENTIFIED BY 'password123';

Verifikasi User:

SELECT User, Host FROM mysql.user;

Hasil: Dari hasil query, pengguna reny, andara, diana, dan andara1 telah berhasil dibuat.

2. Penghapusan User

Query:

DROP USER 'andara1'@'localhost';

Verifikasi:

SELECT User, Host FROM mysql.user;

Hasil: User andara1 telah berhasil dihapus dari sistem.

3. Pembuatan Role dalam MySQL

Query:

CREATE ROLE 'role_reny_insert_select';
CREATE ROLE 'role_reny_create_drop';

Hasil: Role role_reny_insert_select dan role_reny_create_drop berhasil dibuat.

4. Pemberian Privilege kepada Role

Query:

GRANT SELECT, INSERT ON pertemuan3.* TO 'role_reny_insert_select';
GRANT CREATE, DROP ON pertemuan3.* TO 'role_reny_create_drop';

Hasil: Privilege diberikan sesuai dengan role masing-masing.

5. Pemberian Role kepada User

Query:

GRANT 'role_reny_insert_select' TO 'reny'@'localhost', 'andara'@'localhost';
GRANT 'role_reny_create_drop' TO 'diana'@'localhost', 'reny1'@'localhost';

Hasil: User reny dan andara diberikan role role_reny_insert_select, sementara diana dan reny1 diberikan role_reny_create_drop.

6. Pengujian Sebelum dan Sesudah Pemberian Role

Query Sebelum Pemberian Role:

SHOW GRANTS FOR 'andara'@'localhost';
SHOW GRANTS FOR 'reny1'@'localhost';

Query Sesudah Pemberian Role:

SHOW GRANTS FOR 'andara'@'localhost';
SHOW GRANTS FOR 'reny1'@'localhost';

Hasil: Setelah diberikan role, user memiliki hak akses tambahan yang sesuai dengan peran yang diberikan.

7. Melepaskan Role dari User

Query:

REVOKE 'role_reny_insert_select' FROM 'reny'@'localhost', 'andara'@'localhost';
REVOKE 'role_reny_create_drop' FROM 'diana'@'localhost', 'reny1'@'localhost';

Verifikasi:

SHOW GRANTS FOR 'reny1'@'localhost';
SHOW GRANTS FOR 'diana'@'localhost';

Hasil: Setelah dicabut, user tidak lagi memiliki role tersebut.

8. Monitoring Aktivitas Pengguna

Konfigurasi Monitoring:

SET global general_log = 1;
SET global log_output = 'table';

Melihat Log Aktivitas:

SELECT * FROM mysql.general_log;

Hasil: Log aktivitas pengguna dapat dilihat dalam tabel mysql.general_log.


Kesimpulan

  1. Manajemen Akun Pengguna: Pembuatan dan penghapusan akun pengguna telah berhasil dilakukan dengan CREATE USER dan DROP USER.

  2. Manajemen Hak Akses (Privilege): Hak akses seperti SELECT, INSERT, CREATE, dan DROP telah diberikan ke role dan diuji.

  3. Pemberian dan Penghapusan Role: Role telah diberikan kepada user menggunakan GRANT dan berhasil dicabut dengan REVOKE.

  4. Pengujian Hak Akses: Dengan SHOW GRANTS, dapat diverifikasi hak akses user sebelum dan setelah diberikan role.

  5. Monitoring Aktivitas Pengguna: Dengan mengaktifkan general_log, aktivitas query yang dijalankan dapat dipantau.

Dengan demikian, praktikum ini memberikan pemahaman mendalam mengenai pengelolaan user, role, dan privilege dalam MySQL, serta bagaimana melakukan monitoring aktivitas pengguna untuk keamanan dan efisiensi sistem.


Bukti Pendukung 







Referensi

  1. Dokumentasi Resmi MySQL - https://dev.mysql.com/doc/

  2. W3Schools MySQL Tutorial - https://www.w3schools.com/mysql/

Comments

Popular posts from this blog

Instalasi dan Konfigurasi Server Database

Optimasi Bottleneck Dalam Mysql