Computer >> คอมพิวเตอร์ >  >> ซอฟต์แวร์ >> Office

ภาษาควบคุมข้อมูล (DCL)

ภาษาควบคุมข้อมูล เป็นสับเซตของภาษาคิวรีที่มีโครงสร้าง ผู้ดูแลระบบฐานข้อมูลใช้ DCL เพื่อกำหนดค่าการเข้าถึงความปลอดภัยไปยังฐานข้อมูลเชิงสัมพันธ์ ช่วยเสริม Data Definition Language ซึ่งเพิ่มและลบวัตถุฐานข้อมูล และ ภาษาการจัดการข้อมูล ซึ่งเรียกค้น แทรก และแก้ไขเนื้อหาของฐานข้อมูล

DCL เป็นชุดย่อยของ SQL ที่ง่ายที่สุด เนื่องจากประกอบด้วยสามคำสั่งเท่านั้น:GRANT, REVOKE และ DENY เมื่อรวมกันแล้ว คำสั่งทั้งสามนี้จะช่วยให้ผู้ดูแลระบบมีความยืดหยุ่นในการตั้งค่าและลบการอนุญาตฐานข้อมูลแบบละเอียด

เพิ่มการอนุญาตด้วยคำสั่ง GRANT

คำสั่ง GRANT เพิ่มสิทธิ์ใหม่ให้กับผู้ใช้ฐานข้อมูล มันมีรูปแบบที่ง่ายมาก กำหนดไว้ดังนี้:

GRANT [privilege]
ON [object]
TO [user]
[WITH GRANT OPTION]

นี่คือบทสรุปของพารามิเตอร์แต่ละตัวที่คุณสามารถระบุได้ด้วยคำสั่งนี้:

  • เอกสิทธิ์ — สามารถเป็นได้ทั้งคีย์เวิร์ด ALL (เพื่อให้สิทธิ์ที่หลากหลาย) หรือสิทธิ์ฐานข้อมูลเฉพาะหรือชุดของสิทธิ์ ตัวอย่าง ได้แก่ CREATE DATABASE, SELECT, INSERT, UPDATE, DELETE, EXECUTE และ CREATE VIEW
  • วัตถุ — สามารถเป็นวัตถุฐานข้อมูลใด ๆ ตัวเลือกสิทธิ์ใช้งานที่ถูกต้องจะแตกต่างกันไปตามประเภทของวัตถุฐานข้อมูลที่คุณรวมไว้ในส่วนคำสั่งนี้ โดยทั่วไป วัตถุจะเป็นฐานข้อมูล ฟังก์ชัน ขั้นตอนการจัดเก็บ ตาราง หรือมุมมอง
  • ผู้ใช้ — สามารถเป็นผู้ใช้ฐานข้อมูลใด ๆ คุณยังสามารถแทนที่บทบาทสำหรับผู้ใช้ในข้อนี้ หากคุณต้องการใช้การรักษาความปลอดภัยฐานข้อมูลตามบทบาท
  • หากคุณรวมตัวเลือก พร้อมตัวเลือกการให้สิทธิ์ ที่ส่วนท้ายของคำสั่ง GRANT คุณไม่เพียงแต่ให้สิทธิ์แก่ผู้ใช้ที่ระบุในคำสั่ง SQL เท่านั้น แต่ยังให้สิทธิ์ผู้ใช้ในการให้สิทธิ์เดียวกันกับ อื่นๆ ผู้ใช้ฐานข้อมูล ด้วยเหตุผลนี้ โปรดใช้ประโยคนี้อย่างระมัดระวัง

ตัวอย่างเช่น สมมติว่าคุณต้องการให้ผู้ใช้ Joe ความสามารถในการดึงข้อมูลจาก พนักงาน ตารางในฐานข้อมูลชื่อ HR . ใช้คำสั่ง SQL ต่อไปนี้:

GRANT SELECT
ON HR.employees
TO Joe

โจสามารถดึงข้อมูลจากตารางพนักงาน อย่างไรก็ตาม เขาจะไม่สามารถให้สิทธิ์ผู้ใช้รายอื่นในการดึงข้อมูลจากตารางนั้นได้ เนื่องจากสคริปต์ DCL ไม่ได้รวมส่วนคำสั่ง WITH GRANT OPTION

เพิกถอนการเข้าถึงฐานข้อมูล

คำสั่ง REVOKE จะลบการเข้าถึงฐานข้อมูลจากผู้ใช้ที่ได้รับสิทธิ์การเข้าถึงดังกล่าวก่อนหน้านี้ ไวยากรณ์สำหรับคำสั่งนี้ถูกกำหนดดังนี้:

REVOKE [GRANT OPTION FOR] [permission]
ON [object]
FROM [user]
[CASCADE]

นี่คือบทสรุปเกี่ยวกับพารามิเตอร์สำหรับคำสั่ง REVOKE:

  • การอนุญาต — ระบุการอนุญาตฐานข้อมูลเพื่อลบออกจากผู้ใช้ที่ระบุ คำสั่งเพิกถอนทั้งการยืนยัน GRANT และ DENY ที่ทำไว้ก่อนหน้านี้สำหรับการอนุญาตที่ระบุ
  • วัตถุ — สามารถเป็นวัตถุฐานข้อมูลใด ๆ ตัวเลือกสิทธิ์ใช้งานที่ถูกต้องจะแตกต่างกันไปตามประเภทของวัตถุฐานข้อมูลที่คุณรวมไว้ในส่วนคำสั่งนี้ โดยทั่วไป วัตถุจะเป็นฐานข้อมูล ฟังก์ชัน ขั้นตอนการจัดเก็บ ตาราง หรือมุมมอง
  • ผู้ใช้ — สามารถเป็นผู้ใช้ฐานข้อมูลใด ๆ คุณยังสามารถแทนที่บทบาทสำหรับผู้ใช้ในข้อนี้ หากคุณต้องการใช้การรักษาความปลอดภัยฐานข้อมูลตามบทบาท
  • ตัวเลือก GRANT สำหรับ ส่วนคำสั่งลบความสามารถของผู้ใช้ที่ระบุในการให้สิทธิ์ที่ระบุแก่ผู้ใช้รายอื่น หากคุณรวม ตัวเลือก GRANT สำหรับ ข้อในคำสั่ง REVOKE การอนุญาตหลักจะไม่ถูกเพิกถอน ข้อนี้จะเพิกถอนเฉพาะความสามารถในการอนุญาต
  • The น้ำตก ตัวเลือกยังเพิกถอนการอนุญาตที่ระบุจากผู้ใช้ใด ๆ ที่ผู้ใช้ที่ระบุให้สิทธิ์

คำสั่งต่อไปนี้เพิกถอนการอนุญาตที่มอบให้กับ Joe ในตัวอย่างก่อนหน้านี้:

REVOKE SELECT
ON HR.employees
FROM Joe

ปฏิเสธการเข้าถึงฐานข้อมูลอย่างชัดแจ้ง

คำสั่ง DENY ป้องกันผู้ใช้จากการได้รับอนุญาตอย่างชัดแจ้ง คุณลักษณะนี้มีประโยชน์เมื่อผู้ใช้เป็นสมาชิกของบทบาทหรือกลุ่มที่ได้รับสิทธิ์ และคุณต้องการป้องกันไม่ให้ผู้ใช้แต่ละรายรับช่วงสิทธิ์โดยการสร้างข้อยกเว้น ไวยากรณ์สำหรับคำสั่งนี้มีดังต่อไปนี้:

DENY [permission]
ON [object]
TO [user]

พารามิเตอร์สำหรับคำสั่ง DENY จะเหมือนกับพารามิเตอร์ที่ใช้สำหรับคำสั่ง GRANT ตัวอย่างเช่น หากคุณต้องการให้แน่ใจว่าแมทธิวไม่มีวันได้รับความสามารถในการลบข้อมูลออกจากตารางของพนักงาน ให้ออกคำสั่งต่อไปนี้:

DENY DELETE
ON HR.employees
TO Matthew