Data Control Language (DCL)
This blog contains about Data Control Language (DCL)Halo olll!! how are uu? Semoga senantiasa berada dalam lingkungan Allah ya.. Di Blog kali ini Aku akan membahas beberapa pengertian Dari DCL or Data Control Language, dan aku juga akan memberikan contoh terkait DCL..enjoyy it!!!
Sebelumnya mentemen harus tahu apa itu "DCL"?Come on! let's learn!
Apa sih di DCL itu? mengapa begitu diperlukan?
Data Control Language (DCL) adalah salah satu dari kelompok perintah SQL yang digunakan untuk melakukan kontrol terhadap privilege atau hak akses khusus untuk berinteraksi dengan database. Hak akses khusus ini diperlukan sebagai prasyarat bagi setiap user database untuk melakukan berbagai aksi di database, seperti: membuat object, menghapus object, mengubah object, menampilkan hasil query, dan seterusnya.
Sederhananya, setiap pengguna database hanya dapat melakukan aksi-aksi yang sudah diberikan oleh user dengan kontrol tertinggi di dalam database tersebut. Misalnya, pengguna A hanya diberikan akses untuk membuat dan menampilkan sesuatu di database. Maka, pengguna tersebut hanya dapat melakukan perintah tersebut saja, tidak bisa melakukan ubah data, hapus data, dan seterusnya. Hal ini menjadi penting untuk diketahui karena di dalam dunia kerja dengan banyak pengguna database, manajemen pembagian hak akses seperti ini sangat krusial dan berpengaruh terhadap integritas dan keamanan data.
Apa Saja yang Termasuk ke dalam Perintah DCL?
Berikut ini adalah beberapa perintah DCL:
- GRANT
- REVOKE
1. GRANT
Perintah Grant digunakan untuk memberikan hak akses khusus kepada user untuk melakukan aksi tertentu pada object tertentu di database.
Sintaks:
GRANT tipe_privilege
ON nama_objek
TO nama_pengguna;Keterangan:
- tipe_privilege — diisi dengan privilege atau hak akses yang dimaksud (lihat tabel di bawah).
- nama_objek — diisi dengan objek-objek database, seperti: database, table, view, trigger, dan seterusnya.
- nama_pengguna — diisi dengan nama pengguna database yang ingin diberikan privilege.
Berikut ini adalah beberapa contoh tipe privilege:
| Tipe Privilege | Keterangan |
|---|---|
| ALL PRIVILEGE | Memberikan seluruh akses secara penuh (full access) |
| CREATE | Memberikan hak akses untuk membuat database atau objek database |
| DROP | Memberikan hak akses untuk menghapus database atau objek database |
| SELECT | Memberikan hak akses untuk melakukan query ke database |
| INSERT | Memberikan hak akses untuk menambahkan record / data baru ke tabel |
| UPDATE | Memberikan hak akses untuk mengubah record / data di tabel |
| DELETE | Memberikan hak akses untuk menghapus record / data di tabel |
Sebelum menggunakan perintah Grant, pertama buat user baru terlebih dahulu di database menggunakan sintaks di bawah ini:
CREATE USER 'nama_user'@'localhost' IDENTIFIED BY 'password';Sebagai catatan, sebelum membuat user baru, masuklah terlebih dahulu sebagai user root dengan menggunakan perintah:
mysql -u root
USE mysqlSetelah itu kita akan membuat user baru dengan nama ‘DosenIT‘ dengan password ‘dosenit.com‘. Gunakan perintah di bawah ini:
Asumsikan bahwa kita akan memberikan akses database kepada user tersebut. Misalnya kita akan membuat database bernama “db_kampus”.
Setelah database-nya berhasil dibuat, langkah selanjutnya adalah memberikan akses tersebut kepada user tersebut. Untuk keperluan tersebut, kita dapat menggunakan perintah GRANT mengikuti sintaks yang telah dijabarkan di atas. Misalnya saat ini kita hanya akan memberikan hak akses untuk membuat, menambahkan, dan melakukan query terhadap objek-objek di database “db_kampus”. Maka gunakanlah perintah di bawah ini:
Sebagai catatan, perintah FLUSH PRIVILEGES digunakan setiap kali selesai memberikan atau menarik kembali hak akses user.
Setelah itu, mari kita login kembali ke mysql menggunakan akun baru tersebut. Lakukan dengan menggunakan perintah di bawah ini:
mysql -u DosenIT -p
-- masukkan password
USE db_kampus;Setelah berhasil masuk dan menggunakan database db_kampus, cobalah perintah-perintah yang berhubungan dengan CREATE, INSERT, dan SELECT. Silakan kreasikan sebebas mungkin yang Anda inginkan. Anda juga boleh menggunakan perintah-perintah di bawah ini untuk bahan uji coba.
Perintah-perintah yang berhubungan dengan CREATE, INSERT, dan SELECT akan berhasil dieksekusi di user ini dikarenakan telah diberikan akses sebelumnya oleh user root menggunakan perintah GRANT. Tetapi bagaimana dengan UPDATE, DELETE, dan lainnya yang tidak didefinisikan sebelumnya? Silakan dicoba menggunakan kreasi perintah sendiri atau menggunakan contoh di bawah ini.
Bagaimana hasilnya? Tentunya kita akan mendapatkan pesan error seperti gambar di bawah ini.

2. REVOKE
Perintah Revoke digunakan untuk menarik kembali / mencabut / membatalkan hak akses khusus yang sebelumnya telah diberikan melalui perintah Grant.
Sintaks:
REVOKE tipe_privilege
ON nama_objek
FROM nama_pengguna;- tipe_privilege — diisi dengan privilege atau hak akses yang dimaksud (lihat tabel di bagian atas).
- nama_objek — diisi dengan objek-objek database, seperti: database, table, view, trigger, dan seterusnya.
- nama_pengguna — diisi dengan nama pengguna database yang ingin dicabut kembali hak akses atau privilege-nya.
Untuk contoh penggunaannya, mari kita tarik kembali hak akses SELECT dari user DosenIT.
Setelah mengeksekusi perintah di atas, seharusnya saat ini user DosenIT sudah tidak dapat menggunakan perintah SELECT. Perhatikan gambar di bawah ini.

Hal ini berlaku untuk semua perintah yang lain. Selamat mencoba dan mengkreasikan sendiri.
Simpulan
Pembahasan yang ada pada tulisan ini hanya mengakomodasi basic dari Data Control Language (DCL). Akan tetapi, walaupun dikategorikan sebagai basic, tulisan ini cukup baik untuk pijakan awal atau refresh untuk semua pihak dalam rangka mengetahui manajemen akun pengguna di MySQL database beserta perintah dasar DCL. Keep up the good work!
.jpg)
Komentar
Posting Komentar