Aspek keamanan: kerahasiaan, integritas, ketersediaan

From OnnoWiki
Revision as of 07:00, 21 April 2025 by Onnowpurbo (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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


Pranala Menarik