Bahasa Kontrol Data (DCL) untuk Izin Basis Data
NS Bahasa Kontrol Data adalah subset dari Structured Query Language. Administrator database menggunakan DCL untuk mengkonfigurasi akses keamanan ke database relasional. Ini melengkapi Bahasa Definisi Data, yang menambahkan dan menghapus objek database, dan Bahasa Manipulasi Data, yang mengambil, menyisipkan, dan memodifikasi isi database.
DCL adalah subset SQL yang paling sederhana, karena hanya terdiri dari tiga perintah: GRANT, REVOKE, dan DENY. Jika digabungkan, ketiga perintah ini memberikan fleksibilitas kepada administrator untuk mengatur dan menghapus izin basis data secara terperinci.
Menambahkan Izin Dengan Perintah GRANT
Perintah GRANT menambahkan izin baru ke pengguna database. Ini memiliki sintaks yang sangat sederhana, yang didefinisikan sebagai berikut:
HIBAH [hak istimewa]
AKTIF [objek]
UNTUK [pengguna]
[DENGAN PILIHAN HIBAH]
Inilah ikhtisar pada setiap parameter yang dapat Anda berikan dengan perintah ini:
-
Hak istimewa — dapat berupa kata kunci ALL (untuk memberikan berbagai izin) atau izin database tertentu atau serangkaian izin. Contohnya termasuk CREATE DATABASE, SELECT, INSERT, UPDATE, DELETE, EXECUTE dan CREATE VIEW.
- Obyek — dapat berupa objek basis data apa pun. Opsi hak istimewa yang valid bervariasi berdasarkan jenis objek database yang Anda sertakan dalam klausa ini. Biasanya, objek akan berupa database, fungsi, prosedur tersimpan, tabel atau tampilan.
- Pengguna — dapat menjadi pengguna basis data apa saja. Anda juga dapat mengganti peran pengguna dalam klausa ini jika Anda ingin menggunakan keamanan basis data berbasis peran.
- Jika Anda termasuk opsional DENGAN PILIHAN HIBAH klausa di akhir perintah GRANT, Anda tidak hanya memberikan izin kepada pengguna tertentu didefinisikan dalam pernyataan SQL tetapi juga memberikan izin kepada pengguna untuk lebih memberikan yang sama izin untuk lainnya pengguna basis data. Untuk alasan ini, gunakan klausa ini dengan hati-hati.
Misalnya, anggap Anda ingin memberi pengguna Joe kemampuan untuk mengambil informasi dari karyawan meja di a basis data ditelepon SDM. Gunakan perintah SQL berikut:
HIBAH PILIH
ON HR.karyawan
UNTUK Jo.
Joe dapat mengambil informasi dari tabel karyawan. Namun, dia tidak akan dapat memberikan izin kepada pengguna lain untuk mengambil informasi dari tabel itu karena skrip DCL tidak menyertakan klausa WITH GRANT OPTION.
Mencabut Akses Basis Data
Perintah REVOKE menghapus akses database dari pengguna yang sebelumnya diberikan akses tersebut. Sintaks untuk perintah ini didefinisikan sebagai berikut:
cabut [PILIHAN HIBAH UNTUK] [izin]
AKTIF [objek]
DARI [pengguna]
[RIAM]
Berikut adalah ikhtisar tentang parameter untuk perintah REVOKE:
- Izin — menentukan izin database untuk dihapus dari pengguna yang diidentifikasi. Perintah mencabut pernyataan GRANT dan DENY yang sebelumnya dibuat untuk izin yang diidentifikasi.
- Obyek — dapat berupa objek basis data apa pun. Opsi hak istimewa yang valid bervariasi berdasarkan jenis objek database yang Anda sertakan dalam klausa ini. Biasanya, objek akan berupa database, fungsi, prosedur tersimpan, tabel, atau tampilan.
- Pengguna — dapat menjadi pengguna basis data apa saja. Anda juga dapat mengganti peran pengguna dalam klausa ini jika Anda ingin menggunakan keamanan basis data berbasis peran.
- NS HIBAH PILIHAN UNTUK klausa menghapus kemampuan pengguna tertentu untuk memberikan izin yang ditentukan kepada pengguna lain. Jika Anda termasuk HIBAH PILIHAN UNTUK klausa dalam pernyataan REVOKE, izin utama tidak dicabut. Klausul ini hanya mencabut kemampuan pemberian.
- NS RIAM opsi juga mencabut izin yang ditentukan dari pengguna mana pun yang diberikan izin oleh pengguna tertentu.
Perintah berikut mencabut izin yang diberikan kepada Joe dalam contoh sebelumnya:
cabut PILIHAN
ON HR.karyawan
DARI Jo.
Secara Eksplisit Menolak Akses Database
Perintah DENY secara eksplisit mencegah pengguna menerima izin tertentu. Fitur ini berguna ketika pengguna adalah anggota peran atau grup yang diberikan izin, dan Anda ingin mencegah pengguna individu tersebut mewarisi izin dengan membuat pengecualian. Sintaks untuk perintah ini adalah sebagai berikut:
TOLAK [izin]
AKTIF [objek]
UNTUK [pengguna]
Parameter untuk perintah DENY identik dengan yang digunakan untuk perintah GRANT. Misalnya, jika Anda ingin memastikan bahwa Matthew tidak akan pernah menerima kemampuan untuk menghapus informasi dari tabel karyawan, jalankan perintah berikut:
TOLAK HAPUS
ON HR.karyawan
KEPADA Matius.