Mekanisme kontrol akses dan otorisasi

From OnnoWiki
Revision as of 07:25, 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 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.


Pranala Menarik