MATERI 3 - MANAJEMEN USER, ROLE, DAN PRIVILEGE
Saya, Marinda Cahya P, dari Kelas 2B dengan nomor absen 16, menulis materi ini sebagai rangkuman dari Praktikum Instalasi dan Konfigurasi Server Database yang dilaksanakan pada tanggal 26 Februari 2025. Topik yang dibahas dalam praktikum ini adalah Manajemen user, role, privilege. Rangkuman ini disusun sebagai salah satu syarat untuk memenuhi tugas praktikum Mata Kuliah Sistem Manajemen Basis Data. Jika terdapat kesalahan dalam penulisan atau gambar yang kurang jelas, saya mohon maaf.
MANAJEMEN USER, ROLE, PRIVILAGE
Latar Belakang
Dalam sistem basis data, pengelolaan pengguna dan hak akses merupakan aspek krusial untuk memastikan keamanan, efisiensi, dan keteraturan dalam pengelolaan data. MySQL menyediakan fitur manajemen user, role, dan privilege yang memungkinkan administrator database (DBA) mengatur siapa yang dapat mengakses, mengubah, atau menghapus data dalam sistem.
Mengapa manajemen user penting?
• Mencegah akses tidak sah ke database.
• Memastikan setiap pengguna memiliki hak akses yang sesuai dengan tugasnya.
• Memudahkan pengelolaan hak akses dengan sistem role.
Memungkinkan monitoring aktivitas pengguna untuk keamanan dan audit.
Permasalahan yang diangkat
- Bagaimana cara membuat dan menghapus user di MySQL?
- Bagaimana cara memberikan hak akses (privilege) kepada user?
- Bagaimana cara membuat role untuk menyederhanakan pengelolaan hak akses?
- Bagaimana cara memonitor aktivitas pengguna dalam database?
Skenario aktivitas
- Pembuatan dan penghapusan user dalam MySQL.
- Pengelolaan hak akses (privilege) dengan GRANT dan REVOKE.
- Penggunaan role untuk manajemen hak akses yang lebih efisien.
- Monitoring aktivitas pengguna melalui general log.
Pembahasan (Latihan Soal)
1. Manajemen Akun Pengguna
- Pembuatan User
- Untuk membuat user baru, gunakan perintah berikut:
CREATE USER 'marinda'@'localhost' IDENTIFIED BY '12345';
CREATE USER 'aurell'@'localhost' IDENTIFIED BY '1234';
- Penghapusan User
2. Manajemen Hak Akses atau Privilege
- Membuat Role
- Role memungkinkan pengelolaan hak akses dengan lebih mudah. Sebagai contoh, kita membuat dua role:
SELECT * FROM mysql.roles_mapping;
- Memberikan Privilage select insert Ke Role diatas
GRANT SELECT, INSERT ON data_base26.* TO 'role_abel_select_insert';
SHOW GRANTS FOR 'role_abel_select_insert';
- Buat role dengan “role_nama_anda_create_drop” → role_andi_create_drop
CREATE ROLE 'role_marinda_create_drop';
SELECT USER FROM mysql.user WHERE USER = 'role_marinda_create_drop';
1.
- Berikan Privilege create, drop kedalam role diatas
GRANT CREATE,DROP ON data_base26.* TO 'role_marinda_create_drop';
SHOW GRANTS FOR 'role_marinda_create_drop';
- Memberikan 2 User Kedalam Masing- masing roel diatas
CREATE USER 'aurel1'@'localhost'IDENTIFIED BY'1234';
CREATE USER 'aurel2'@'localhost'IDENTIFIED BY'1234';
CREATE USER 'aurel3'@'localhost'IDENTIFIED BY'1234';
CREATE USER 'aurel4'@'localhost'IDENTIFIED BY'1234';
GRANT 'role_abel_select_insert' TO 'aurel1'@'localhost';
GRANT 'role_abel_select_insert' TO 'aurel2'@'localhost';
GRANT 'role_marinda_create_drop' TO 'aurel3'@'localhost';
GRANT 'role_marinda_create_drop' TO 'aurel4'@'localhost';
SHOW GRANTS FOR 'aurel1'@'localhost';
SHOW GRANTS FOR 'aurel2'@'localhost';
SHOW GRANTS FOR 'aurel3'@'localhost';
SHOW GRANTS FOR 'aurel4'@'localhost';
3. Pengujian Sebelum Dan sesudah user diberikan role
- Sebelum
SHOW GRANTS FOR 'aurel2'@'localhost';
USE basis_data26;
SELECT * FROM produk;
INSERT INTO produk(nama,harga) VALUES ('beras', 20000);
- Sesudah
CREATE ROLE 'role_select_insert';
GRANT SELECT, INSERT ON basis_data26.* TO 'role_select_insert';
GRANT 'role_select_insert' TO 'aurel2'@'localhost';
FLUSH PRIVILEGES;
USE basis_data26;
SELECT * FROM produk;
INSERT INTO produk(nama,harga) VALUES ('minyak', 20000);
4. Lepas role dari user diatas. Sehingga user menjadi tidak memiliki role
- Sebelum
- REVOKE → Perintah untuk mencabut hak akses atau role dari user.
- 'role_abel_select_insert' → Role yang diberikan sebelumnya kepada user 'aurel2'.
- FROM 'aurel2'@'localhost' → Menargetkan user aurel2 yang hanya bisa login dari localhost.
beberapa kali proses query. Kemudian lihat di log nya dan tampilkan hasilnya.
SET GLOBAL general_log = 1;
SET GLOBAL log_output = 'table';
SELECT * FROM mysql.general_log;

Penjelasan:
1. SET GLOBAL general_log = 1;
- Fungsi: Mengaktifkan general log, yang digunakan untuk mencatat semua perintah SQL yang dijalankan di MySQL.
- Dampak: Setelah ini aktif, setiap query yang dijalankan oleh user akan dicatat dalam log MySQL.
2. SET GLOBAL log_output = 'table';
- Fungsi: Mengatur output log agar disimpan dalam bentuk tabel (mysql.general_log).
3. SELECT * FROM mysql.general_log;
- Fungsi: Menampilkan semua query yang telah dieksekusi sejak general log diaktifkan.
- Output: Akan menampilkan data seperti:
event_time → Waktu eksekusi query.
user_host → User yang menjalankan query.
command_type → Jenis query (SELECT, INSERT, dll.).
argument → Isi query yang dijalankan.
Kesimpulan
- Penggunaan role mempermudah manajemen hak akses dibandingkan memberikan izin secara manual ke masing-masing user.
- Hak akses pengguna dapat diuji sebelum dan sesudah role diberikan untuk memastikan pengaturan yang benar.
- Monitoring aktivitas pengguna sangat penting untuk memastikan keamanan dan mencegah akses yang tidak sah.
- General log membantu DBA dalam memantau semua aktivitas yang dilakukan di dalam database.
- Dengan sistem role dan logging yang baik, pengelolaan database menjadi lebih efisien, aman, dan terstruktur.















Komentar
Posting Komentar