Aspek keamanan: kerahasiaan, integritas, ketersediaan
Tujuan Pembelajaran
Setelah mempelajari modul ini, mahasiswa diharapkan mampu:
- Menjelaskan aspek utama keamanan basis data (CIA: Confidentiality, Integrity, Availability).
- Menerapkan konfigurasi dan praktik keamanan pada MySQL.
- Memahami pengelolaan hak akses, enkripsi, dan backup data untuk menjaga keamanan basis data.
Tiga Pilar Keamanan Basis Data (CIA)
Aspek | Definisi |
---|---|
Kerahasiaan | Menjaga agar data hanya dapat diakses oleh pihak yang berwenang. |
Integritas | Menjamin bahwa data akurat, konsisten, dan tidak dimodifikasi tanpa izin. |
Ketersediaan | Menjamin data dan layanan database tersedia saat dibutuhkan. |
Kerahasiaan (Confidentiality)
Tujuan:
Melindungi data dari akses tidak sah.
Contoh di MySQL:
1. Membuat pengguna dan memberi hak akses minimum
-* Buat user baru CREATE USER 'editor'@'localhost' IDENTIFIED BY 'password123'; -* Hanya izinkan SELECT pada tabel mahasiswa GRANT SELECT ON universitas.mahasiswa TO 'editor'@'localhost';
2. Menghapus hak akses
REVOKE SELECT ON universitas.mahasiswa FROM 'editor'@'localhost';
3. Mengaktifkan autentikasi enkripsi SSL (opsional)
Aktifkan SSL di file config:
[mysqld] ssl-ca=/etc/mysql/certs/ca.pem ssl-cert=/etc/mysql/certs/server-cert.pem ssl-key=/etc/mysql/certs/server-key.pem
Integritas (Integrity)
Tujuan:
Melindungi data agar tidak diubah/dihapus secara tidak sah atau tidak sengaja.
Contoh di MySQL:
1. Gunakan constraint seperti PRIMARY KEY, FOREIGN KEY, dan CHECK
CREATE TABLE mahasiswa ( nim VARCHAR(10) PRIMARY KEY, nama VARCHAR(100) NOT NULL, ipk DECIMAL(3,2) CHECK (ipk BETWEEN 0.00 AND 4.00) );
2. Gunakan TRIGGER untuk validasi otomatis
DELIMITER // CREATE TRIGGER before_insert_mahasiswa BEFORE INSERT ON mahasiswa FOR EACH ROW BEGIN IF NEW.ipk > 4.00 THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'IPK tidak valid'; END IF; END; // DELIMITER ;
Ketersediaan (Availability)
Tujuan:
Memastikan database tetap bisa diakses saat dibutuhkan, meski ada gangguan.
Strategi:
1. Backup Berkala
mysqldump -u root -p universitas > backup_universitas.sql
2. Restore Data
mysql -u root -p universitas < backup_universitas.sql
3. Monitoring dan Restart Otomatis
Gunakan `systemd` agar MySQL selalu otomatis restart jika gagal:
sudo systemctl enable mysql sudo systemctl start mysql
4. Monitoring Kesehatan Server
Install dan jalankan MySQLTuner:
sudo apt install mysqltuner sudo mysqltuner
Kesimpulan
Aspek | Implementasi MySQL Ubuntu 24.04 |
---|---|
Kerahasiaan | Buat user terbatas, grant/revoke, gunakan SSL |
Integritas | Gunakan constraint, trigger, validasi data |
Ketersediaan | Backup, monitoring, pemulihan otomatis, konfigurasi systemd |