Aspek keamanan: kerahasiaan, integritas, ketersediaan: Difference between revisions
Created page with "Berikut adalah **Modul 8: Keamanan Basis Data**, dengan fokus pada tiga aspek utama yaitu **kerahasiaan (confidentiality)**, **integritas (integrity)**, dan **ketersediaan (av..." |
No edit summary |
||
| Line 1: | Line 1: | ||
==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)== | |||
--- | {| class="wikitable" | ||
! 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. | Melindungi data dari akses tidak sah. | ||
'''Contoh di MySQL:''' | |||
1. '''Membuat pengguna dan memberi hak akses minimum''' | |||
-- Hanya izinkan SELECT pada tabel mahasiswa | -* Buat user baru | ||
GRANT SELECT ON universitas.mahasiswa TO 'editor'@'localhost'; | 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'; | |||
REVOKE SELECT ON universitas.mahasiswa FROM 'editor'@'localhost'; | |||
3. '''Mengaktifkan autentikasi enkripsi SSL (opsional)''' | |||
Aktifkan SSL di file config: | 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. | 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 ( | |||
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 // | |||
DELIMITER // | CREATE TRIGGER before_insert_mahasiswa | ||
CREATE TRIGGER before_insert_mahasiswa | BEFORE INSERT ON mahasiswa | ||
BEFORE INSERT ON mahasiswa | FOR EACH ROW | ||
FOR EACH ROW | BEGIN | ||
BEGIN | IF NEW.ipk > 4.00 THEN | ||
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'IPK tidak valid'; | |||
END IF; | |||
END; | |||
END; | // | ||
// | DELIMITER ; | ||
DELIMITER ; | |||
==Ketersediaan (Availability)== | |||
'''Tujuan:''' | |||
Memastikan database tetap bisa diakses saat dibutuhkan, meski ada gangguan. | Memastikan database tetap bisa diakses saat dibutuhkan, meski ada gangguan. | ||
'''Strategi:''' | |||
1. '''Backup Berkala''' | |||
mysqldump -u root -p universitas > backup_universitas.sql | |||
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: | Gunakan `systemd` agar MySQL selalu otomatis restart jika gagal: | ||
sudo systemctl enable mysql | |||
sudo systemctl enable mysql | sudo systemctl start mysql | ||
sudo systemctl start mysql | |||
4. '''Monitoring Kesehatan Server''' | |||
Install dan jalankan MySQLTuner: | Install dan jalankan MySQLTuner: | ||
sudo apt install mysqltuner | |||
sudo apt install mysqltuner | sudo mysqltuner | ||
sudo mysqltuner | |||
==Kesimpulan== | |||
--- | {| class="wikitable" | ||
! 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 | |||
|} | |||
==Pranala Menarik== | |||
* [[Database: Kuliah]] | |||
Latest revision as of 00:00, 21 April 2025
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 |