🔐 Keamanan Database
Level: Advanced
Keamanan database adalah langkah-langkah untuk melindungi data dari akses tidak sah, kebocoran, atau manipulasi.
Bayangkan seperti brankas digital: hanya orang yang punya kunci yang bisa membuka dan mengelola isinya.
📖 Prinsip Keamanan Database
- Authentication: memastikan hanya pengguna sah yang bisa masuk.
- Authorization: mengatur hak akses tiap pengguna.
- Encryption: melindungi data saat disimpan (at rest) maupun saat dikirim (in transit).
- Auditing & Logging: mencatat aktivitas untuk mendeteksi anomali.
- Backup & Recovery: menjaga ketersediaan data jika terjadi insiden.
🛠️ Praktik Kecil
Contoh pengaturan keamanan di MySQL:
-- Membuat user baru dengan password
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'passwordku';
-- Memberikan hak akses hanya SELECT dan INSERT pada database tertentu
GRANT SELECT, INSERT ON inventaris_db.* TO 'appuser'@'localhost';
-- Mencabut hak akses
REVOKE INSERT ON inventaris_db.* FROM 'appuser'@'localhost';
-- Melihat hak akses user
SHOW GRANTS FOR 'appuser'@'localhost';
👉 Dengan cara ini, kita bisa membatasi akses sesuai kebutuhan, sehingga lebih aman.
🎮 Mini Challenge
Pada database inventaris_db:
- Buat user baru bernama
staff dengan password.
- Berikan hak akses hanya untuk membaca data (SELECT) pada tabel
barang.
- Coba lakukan query INSERT dengan user tersebut, pastikan ditolak.
Tugas tambahan: Aktifkan enkripsi koneksi (SSL/TLS) antara client dan server database.