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
Bagaimana cara membuat user dalam MySQL?
Bagaimana cara menghapus user dalam MySQL?
Bagaimana cara membuat role dalam MySQL?
Bagaimana memberikan privilege kepada role dan user?
Bagaimana melakukan pengujian sebelum dan sesudah pemberian role?
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
Manajemen Akun Pengguna: Pembuatan dan penghapusan akun pengguna telah berhasil dilakukan dengan
CREATE USER
danDROP USER
.Manajemen Hak Akses (Privilege): Hak akses seperti
SELECT
,INSERT
,CREATE
, danDROP
telah diberikan ke role dan diuji.Pemberian dan Penghapusan Role: Role telah diberikan kepada user menggunakan
GRANT
dan berhasil dicabut denganREVOKE
.Pengujian Hak Akses: Dengan
SHOW GRANTS
, dapat diverifikasi hak akses user sebelum dan setelah diberikan role.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
Dokumentasi Resmi MySQL - https://dev.mysql.com/doc/
W3Schools MySQL Tutorial - https://www.w3schools.com/mysql/
Comments
Post a Comment