DCL (Data Control Language) adalah bahasa pemrograman yang digunakan untuk mengelola hak akses dan kontrol data dalam database. DCL digunakan untuk memastikan bahwa hanya pengguna yang berwenang yang memiliki akses ke data sensitif dalam database.
Penggunaan DCL adalah ketika seorang administrator database ingin memberikan hak akses ke tabel tertentu kepada sekelompok pengguna, ia dapat menggunakan perintah GRANT untuk memberikan hak akses tersebut. Di sisi lain, jika administrator ingin mencabut hak akses dari pengguna tertentu ke tabel tertentu, ia dapat menggunakan perintah REVOKE. Sedangkan, jika administrator ingin mencegah pengguna atau peran tertentu untuk mengakses tabel tertentu, ia dapat menggunakan perintah DENY.
Perintah dalam Data Control Language (DCL)
1. GRANT
Perintah GRANT digunakan untuk mengontrol akses pengguna terhadap database. Grant DCL digunakan untuk memberikan izin akses atau hak akses ke pengguna atau peran tertentu untuk melakukan operasi tertentu pada objek tertentu dalam database.
Memberikan semua hak akses kepada user :
GRANT ALL PRIVILEGES ON universitas TO andiahmadysx
Query di atas memberikan semua hak akses database “universitas” kepada user “andiahmadysx”
Memberikan hak akses tertentu kepada user :
GRANT SELECT, INSERT, UPDATE ON universitas to nartoh
Di sini berbeda dengan sebelumnya yang memberikan semua hak akses kepada user “andiahmadysx”. Pada query ini administrator tidak memberikan semua hak akses, melainkan hanya memberikan akses “SELECT”, “INSERT”, dan “UPDATE” kepada user “nartoh”.
2. REVOKE
Perintah REVOKE dalam SQL digunakan untuk membatalkan atau menghapus hak akses atau privilege yang sudah diberikan kepada pengguna di dalam database. Berikut ini adalah beberapa contoh penggunaan perintah REVOKE dalam query SQL beserta penjelasannya:
Mencabut semua hak akses dari user :
REVOKE ALL PRIVILEGES ON universitas FROM andiahmadysx;
Query di atas akan membatalkan semua hak akses atau privilege yang sudah diberikan kepada pengguna “anidahmadysx” untuk tabel “universitas”. Dengan demikian, pengguna “anidahmadysx” tidak bisa lagi melakukan operasi apa pun di dalam tabel “universitas”.
Mencabut hak akses tertentu dari user :
REVOKE SELECT, UPDATE ON universitas FROM nartoh;
Query di atas akan membatalkan hak akses SELECT dan INSERT yang sudah diberikan kepada pengguna “nartoh” untuk tabel “universitas”. Dengan demikian, pengguna “nartoh” tidak bisa lagi melihat dan me-update data di dalam tabel “universitas”.