Mekanisme kontrol akses dan otorisasi: Difference between revisions
From OnnoCenterWiki
Jump to navigationJump to search
Created page with "Berikut adalah lanjutan dari **Modul 8: Keamanan Basis Data**, dengan fokus pada **mekanisme kontrol akses dan otorisasi**, lengkap dengan **contoh implementasi di MySQL pada..." |
No edit summary |
||
| Line 1: | Line 1: | ||
==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)''' | |||
GRANT | |||
-- Akses hanya SELECT dan INSERT pada tabel mahasiswa | --- Akses penuh ke database 'universitas' | ||
GRANT SELECT, INSERT ON universitas.mahasiswa TO 'editor'@'localhost'; | 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'; | |||
SHOW GRANTS FOR 'editor'@'localhost'; | |||
Contoh hasil: | Contoh hasil: | ||
GRANT SELECT, INSERT ON `universitas`.`mahasiswa` TO 'editor'@'localhost' | |||
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*). | |||
GRANT | * Nonaktifkan user default yang tidak dipakai. | ||
* Jangan pernah berikan `GRANT ALL ON *.*` kecuali untuk admin terpercaya. | |||
==Kesimpulan== | |||
{| class="wikitable" | |||
! 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. | |||
==Pranala Menarik== | |||
* [[Database: Kuliah]] | |||
Latest revision as of 00:25, 21 April 2025
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.