GANTI, REVOKE dan DENY Kebenaran Pangkalan Data
Bahasa Kawalan Data (DCL) adalah subset dari Bahasa Kuiz Terstruktur (SQL) dan membolehkan pentadbir pangkalan data untuk mengkonfigurasi akses keselamatan kepada pangkalan data hubungan. Ia melengkapi Bahasa Definisi Data (DDL), yang digunakan untuk menambah dan memadam objek pangkalan data, dan Data Manipulation Language (DML) digunakan untuk mengambil, memasukkan, dan memodifikasi kandungan pangkalan data.
DCL adalah yang paling mudah dari subset SQL , kerana ia terdiri daripada hanya tiga perintah: GERAN, REVOKE, dan DENY. Dikombinasikan, tiga arahan ini memberikan pentadbir dengan fleksibiliti untuk menetapkan dan mengalih keluar kebenaran pangkalan data dalam fesyen yang sangat berbutir.
Menambah Kebenaran Dengan Perintah GRANT
Perintah GRANT digunakan oleh pentadbir untuk menambah kebenaran baru kepada pengguna pangkalan data . Ia mempunyai sintaks yang sangat mudah, seperti berikut:
GRANT [keistimewaan] ON [object] TO [user] [WITH OPTION GRANT]Inilah rundown pada setiap parameter yang anda dapat membekalkan dengan perintah ini:
- Keistimewaan boleh menjadi sama ada kata kunci SEMUA (untuk memberikan beraneka jenis izin) atau kebenaran database khusus atau set kebenaran. Contohnya termasuk CREATE DATABASE, SELECT, INSERT, UPDATE, DELETE, EXECUTE and CREATE VIEW.
- Objek boleh menjadi sebarang objek pangkalan data. Opsyen keistimewaan yang sah berbeza mengikut jenis objek pangkalan data yang anda sertakan dalam klausa ini. Lazimnya, objek itu akan sama ada pangkalan data, fungsi, prosedur tersimpan , jadual atau paparan.
- Pengguna boleh menjadi pengguna pangkalan data mana pun. Anda juga boleh menggantikan peranan pengguna dalam fasal ini jika anda ingin menggunakan keselamatan pangkalan data berasaskan peranan.
- Jika anda memasukkan klausa OPTION OPTION pilihan pada akhir arahan GRANT, anda bukan sahaja memberikan pengguna yang ditentukan keizinan yang ditakrifkan dalam pernyataan SQL tetapi juga memberi pengguna keupayaan untuk memberikan kebenaran yang sama kepada pengguna pangkalan data yang lain . Atas sebab ini, gunakan klausa ini dengan berhati-hati.
Contohnya, anggap anda ingin memberikan pengguna keupayaan Joe untuk mendapatkan maklumat dari jadual pekerja dalam pangkalan data yang disebut HR. Anda mungkin menggunakan arahan SQL berikut:
PILIHAN PELANGGAN KEPADA HR.employees TO JoeJoe kini akan mempunyai keupayaan untuk mendapatkan maklumat daripada jadual pekerja. Dia tidak akan dapat memberi kebenaran kepada pengguna lain untuk mengambil maklumat dari jadual itu kerana anda tidak memasukkan klausa OPTION DENGAN DENGAN pernyataan GERAN.
Membatalkan Akses Pangkalan Data
Perintah REVOKE digunakan untuk mengalih keluar akses pangkalan data dari pengguna yang sebelum ini diberikan akses tersebut. Sintaks untuk arahan ini ditakrifkan seperti berikut:
REVOKE [PILIHAN GAN UNTUK] [kebenaran] PADA [objek] DARI [pengguna] [CASCADE]Inilah ringkasan pada parameter untuk arahan REVOKE:
- Kebenaran menentukan kebenaran pangkalan data untuk dibuang dari pengguna yang dikenal pasti. Perintah itu membatalkan kedua-dua pernyataan GRANT dan DENY yang sebelum ini dibuat untuk kebenaran yang dikenalpasti.
- Objek boleh menjadi sebarang objek pangkalan data. Opsyen keistimewaan yang sah berbeza mengikut jenis objek pangkalan data yang anda sertakan dalam klausa ini. Lazimnya, objek itu akan sama ada pangkalan data, fungsi, prosedur tersimpan, jadual atau paparan.
- Pengguna boleh menjadi pengguna pangkalan data mana pun. Anda juga boleh menggantikan peranan pengguna dalam fasal ini jika anda ingin menggunakan keselamatan pangkalan data berasaskan peranan.
- PILIHAN GANTI UNTUK Klausa membuang keupayaan pengguna tertentu untuk memberikan kebenaran yang dinyatakan kepada pengguna lain. Nota : Sekiranya anda memasukkan OPSYEN GANTI UNTUK fasal dalam pernyataan REVOKE, kebenaran utama tidak dibatalkan. Klausa ini hanya membatalkan kemampuan pemberian.
- Opsyen CASCADE juga membatalkan kebenaran yang ditetapkan dari mana-mana pengguna yang diberikan oleh pengguna yang ditentukan.
Sebagai contoh, arahan berikut membatalkan kebenaran yang diberikan kepada Joe dalam contoh terdahulu:
PEMULIHAN PEMULIHAN DENGAN HR.employees FROM JoeCukup Menolak Akses Pangkalan Data
Perintah DENY digunakan untuk secara jelas menghalang pengguna daripada menerima kebenaran tertentu. Ini berguna apabila pengguna adalah ahli peranan atau kumpulan yang diberi kebenaran, dan anda mahu menghalang pengguna itu daripada mewarisi kebenaran dengan membuat pengecualian. Sintaks untuk arahan ini adalah seperti berikut:
DENY [kebenaran] ON [object] TO [user] Parameter untuk arahan DENY adalah sama dengan yang digunakan untuk perintah GRANT.
Contohnya, jika anda ingin memastikan bahawa Matthew tidak akan menerima keupayaan untuk memadam maklumat dari jadual pekerja, mengeluarkan arahan berikut: