Penggunaan Data Control Language (DCL)

Data Control Language (DCL) adalah bagian dari SQL (Structured Query Language) yang digunakan untuk mengontrol akses dan izin pada basis data. DCL terdiri dari dua perintah utama: GRANT dan REVOKE. Perintah-perintah ini memungkinkan administrator basis data untuk mengatur siapa yang dapat mengakses atau melakukan tindakan tertentu pada data dalam basis data. Pengontrolan yang dimaksud di sini meliputi pengontrolan terhadap hak user dan pengontrolan terhadap suatu transaksi, apakah akan disimpan secara permanen ke dalam database atau akan dibatalkan. Adanya DCL adalah sebagai alat control keamanan database dan tabel nya.

Membuat Pengguna (User)

Pengguna (user) adalah pemilik satu atau lebih database jika aksesnya diberikan, dan user tersebut berhak melakukan apapun selama akses yang diberikan.
Untuk dapat membuat user di BDMS MariaDB / MySQL bisa dengan cara menggunakan query dibawah ini.

CREATE USER <user_name> IDENTIFIED BY <password>;

Perintah diatas “hanya” untuk membuat user saja, tidak disertai hak akses terhadap database manapun sehingga tentunya apabila di cek tidak menampilkan database.

CREATE USER davina IDENTIFIED BY ‘D4v1n4aja’;

Perintah GRANT

Perintah GRANT digunakan untuk memberikan hak akses (privilege) kepada user tertentu atau peran pada objek basis data. Hak atau izin ini bisa berupa SELECT, INSERT, UPDATE, DELETE, dll. Melalui pemberian hak akses semacam ini, seorang user memiliki keterbatasan dalam menggunakan database sehingga data akan relatif aman dari pihak-pihak yang tidak berkepentingan.  
Hak akses penuh terhadap database dikendalikan oleh user yang diperankan sebagai administrator. Secara default, dalam MariaDB / MySQL hak akses ini dimiliki oleh user root. Meskipun demikian, root bisa membuat akun user lain yang diberi hak administrator.

Sintaksis dasar perintah Grant:

GRANT hak_izin ON objek_basis_data TO pengguna;

Contoh perintah Grant:

GRANT SELECT ON employees TO user1;
GRANT INSERT, UPDATE ON employees TO user2;

Penjelasan:
Contoh pertama memberikan hak SELECT pada tabel employees kepada user1.
Contoh kedua memberikan hak INSERT dan UPDATE pada tabel employees kepada user2.

Perintah REVOKE

Perintah REVOKE digunakan untuk mencabut hak atau izin yang telah diberikan kepada pengguna atau peran pada objek basis data.

Sintaksis dasar perintah REVOKE:

REVOKE hak_izin ON objek_basis_data FROM pengguna;

Contoh penggunaan perintah REVOKE

REVOKE SELECT ON employees FROM user1;
REVOKE INSERT, UPDATE ON employees FROM user2;

Penjelasan:

  • Contoh pertama mencabut hak SELECT pada tabel employees dari user1.
  • Contoh kedua mencabut hak INSERT dan UPDATE pada tabel employees dari user2.

Hak Akses yang Umum Digunakan

Beberapa hak akses umum yang bisa diberikan atau dicabut menggunakan DCL adalah:

  • SELECT: Mengizinkan pengguna untuk membaca data dari tabel atau tampilan.
  • INSERT: Mengizinkan pengguna untuk menambahkan data baru ke tabel.
  • UPDATE: Mengizinkan pengguna untuk memperbarui data dalam tabel.
  • DELETE: Mengizinkan pengguna untuk menghapus data dari tabel.
  • EXECUTE: Mengizinkan pengguna untuk menjalankan prosedur tersimpan atau fungsi.

Contoh Penggunaan yang Lebih Lanjut

a. Memberikan hak SELECT kepada semua pengguna:

GRANT SELECT ON employees TO PUBLIC;

Perintah ini memberikan hak SELECT pada tabel employees kepada semua pengguna.

b. Memberikan semua hak kepada seorang pengguna:

GRANT ALL PRIVILEGES ON employees TO admin_user;

Perintah ini memberikan semua hak pada tabel employees kepada admin_user.

c. Mencabut semua hak dari seorang pengguna:

REVOKE ALL PRIVILEGES ON employees FROM admin_user;

Perintah ini mencabut semua hak pada tabel employees dari admin_user.

Data Control Language (DCL) adalah bagian penting dari manajemen basis data yang memungkinkan pengaturan hak akses dan izin pengguna pada objek basis data. Penggunaan perintah GRANT dan REVOKE membantu administrator basis data untuk mengontrol siapa yang dapat mengakses atau memodifikasi data, sehingga meningkatkan keamanan dan integritas data.

DCL sangat berguna dalam lingkungan di mana banyak pengguna mengakses basis data, karena memungkinkan kontrol yang tepat atas hak akses mereka. Dengan memahami dan menggunakan DCL dengan benar, administrator basis data dapat memastikan bahwa hanya pengguna yang berwenang yang dapat melakukan tindakan tertentu pada data.