Mekanisme kontrol akses dan otorisasi
Revision as of 07:25, 21 April 2025 by Onnowpurbo (talk | contribs)
Tujuan Pembelajaran
Setelah mempelajari bagian ini, mahasiswa diharapkan mampu:
- Memahami prinsip kontrol akses berbasis peran dan pengguna.
- Mengelola hak akses (privileges) pengguna di MySQL.
- Mengimplementasikan kontrol akses menggunakan perintah GRANT, REVOKE, dan SHOW GRANTS.
Mekanisme Kontrol Akses dan Otorisasi
Definisi:
- Kontrol Akses: Menentukan siapa yang dapat mengakses apa di dalam basis data.
- Otorisasi: Proses untuk memverifikasi apa saja yang boleh dilakukan oleh pengguna yang telah diautentikasi.
Struktur Sistem Hak Akses di MySQL
- User: Diidentifikasi oleh `username@host`
- Privileges: Hak untuk melakukan aksi seperti `SELECT`, `INSERT`, `UPDATE`, dll
- Level Akses:
- Global → berlaku ke seluruh database
- Database → berlaku ke satu database
- Tabel → berlaku ke tabel tertentu
- Kolom → berlaku ke kolom tertentu
- Rutin → berlaku ke prosedur/fungsi
Praktik: Kontrol Akses di MySQL (Ubuntu 24.04)
1. Membuat Pengguna Baru
CREATE USER 'editor'@'localhost' IDENTIFIED BY 'password123';
2. Memberi Hak Akses (GRANT)
--- Akses penuh ke database 'universitas' GRANT ALL PRIVILEGES ON universitas.* TO 'editor'@'localhost'; --- Akses hanya SELECT dan INSERT pada tabel mahasiswa GRANT SELECT, INSERT ON universitas.mahasiswa TO 'editor'@'localhost';
3. Melihat Hak Akses Pengguna
SHOW GRANTS FOR 'editor'@'localhost';
Contoh hasil:
GRANT SELECT, INSERT ON `universitas`.`mahasiswa` TO 'editor'@'localhost'
4. Menghapus Hak Akses (REVOKE)
REVOKE INSERT ON universitas.mahasiswa FROM 'editor'@'localhost';
5. Menghapus Pengguna
DROP USER 'editor'@'localhost';
Studi Kasus Kontrol Akses Berbasis Peran (Simulasi)
Skenario:
- Admin boleh mengakses semua data.
- Dosen hanya bisa melihat dan menginput nilai.
- Mahasiswa hanya bisa melihat data dirinya sendiri.
Implementasi Sederhana:
--- Buat user untuk dosen CREATE USER 'dosen'@'localhost' IDENTIFIED BY 'dosenpass'; GRANT SELECT, INSERT, UPDATE ON universitas.nilai TO 'dosen'@'localhost'; --- Buat user untuk mahasiswa CREATE USER 'mahasiswa'@'localhost' IDENTIFIED BY 'mahasiswapass'; GRANT SELECT ON universitas.mahasiswa TO 'mahasiswa'@'localhost';
Tips Praktik Keamanan MySQL
- Gunakan password yang kuat dan simpan dengan aman.
- Hanya berikan hak minimum yang dibutuhkan pengguna (prinsip *least privilege*).
- Nonaktifkan user default yang tidak dipakai.
- Jangan pernah berikan `GRANT ALL ON *.*` kecuali untuk admin terpercaya.
Kesimpulan
Aksi | Perintah MySQL |
---|---|
Buat user | `CREATE USER` |
Beri hak akses | `GRANT` |
Cek hak akses | `SHOW GRANTS` |
Cabut hak akses | `REVOKE` |
Hapus user | `DROP USER` |
Kontrol akses dan otorisasi adalah garis pertahanan pertama dalam menjaga keamanan basis data dari penyalahgunaan akses.