แนะนำ, 2024

ตัวเลือกของบรรณาธิการ

ความแตกต่างระหว่าง Grant และ Revoke

ใน SQL คำสั่ง DCL ใช้สำหรับกำหนดการอนุญาตที่แตกต่างกันให้กับผู้ใช้การอนุญาตประเภทนี้เรียกว่าสิทธิพิเศษ คำสั่ง Grant และ Revoke เป็นคำสั่ง DCL คำสั่ง GRANT ใช้สำหรับการมอบการอนุญาตแก่ผู้ใช้ในขณะที่คำสั่ง REVOKE ใช้สำหรับการถอนการอนุญาต เลือกแทรกอัพเดตและลบสิทธิพิเศษบางอย่างที่รวมอยู่ในมาตรฐาน SQL

แผนภูมิเปรียบเทียบ

พื้นฐานสำหรับการเปรียบเทียบแกรนท์ถอน
ขั้นพื้นฐานคำสั่ง Grant ใช้สำหรับมอบสิทธิ์พิเศษให้กับผู้ใช้คำสั่งเพิกถอนใช้สำหรับลบสิทธิ์จากผู้ใช้
เมื่อการควบคุมถูกกระจายอำนาจการอนุญาตนั้นง่ายกว่าการเพิกถอนค่อนข้างซับซ้อนในการแสดง
วากยสัมพันธ์อนุญาต
บน
ถึง;
ถอน
บน
จาก;

นิยามของทุน

ผู้ดูแลระบบฐานข้อมูลกำหนดคำสั่ง GRANT ใน SQL เพื่อให้การเข้าถึงหรือสิทธิพิเศษแก่ผู้ใช้ฐานข้อมูล องค์ประกอบหลักสามประการที่เกี่ยวข้องกับการอนุญาตคือผู้ใช้สิทธิ์ / s (การทำงาน) และวัตถุฐานข้อมูล ผู้ใช้ คือคนที่ทริกเกอร์การทำงานของโปรแกรมแอปพลิเคชัน การดำเนินงาน เป็นองค์ประกอบที่ฝังอยู่ในโปรแกรมประยุกต์ การ ดำเนินการ จะดำเนินการกับวัตถุฐานข้อมูลเช่นความสัมพันธ์หรือชื่อมุมมอง

SYNTAX ของ GRANT คำสั่ง:

อนุญาต
บน
ถึง;

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

เมื่อบัญชีเจ้าของ A1 ของความสัมพันธ์ (ตาราง) R ให้สิทธิ์กับบัญชีอื่น A2 บน R ดังนั้นบัญชี A2 สามารถเข้าถึงความสัมพันธ์ R และได้รับอนุญาตให้มอบสิทธิ์ให้กับบัญชีอื่นใน R หาก A1 ยกเลิกสิทธิ์จาก A2 ใน R1 จากนั้นสิทธิ์ทั้งหมดที่ A2 propagated จะถูกเพิกถอนโดยอัตโนมัติโดยระบบ ดังนั้นนี่คือวิธีที่สิทธิ์ในตารางสามารถเผยแพร่ได้ ดังนั้น DBMS ที่อนุญาตให้เผยแพร่ควรปฏิบัติตามสิทธิ์ที่ได้รับเพื่อให้สามารถเพิกถอนสิทธิ์ได้อย่างง่ายดาย

ลองยกตัวอย่างเพื่อแสดงให้เห็นถึงการให้สิทธิพิเศษ เรามีสองแผนสำหรับตารางคณะและแผนกและบัญชี A1 และ A2

GRANT SELECT, INSERT, UPDATE ON FACULTY, DEPARTMENT ถึง A1, A2;

ในตัวอย่างที่ระบุข้างต้นบัญชี A1 และ A2 ได้รับอนุญาตให้ดำเนินการเลือกแทรกและอัปเดตการดำเนินงานในตารางพนักงานและแผนก

คำจำกัดความของการเพิกถอน

คำสั่ง เพิกถอน ใน SQL ถูกกำหนดให้นำสิทธิ์ที่ได้รับอนุญาตไปใช้ (การอนุญาต) จากผู้ใช้ฐานข้อมูล ผู้ที่มีสิทธิ์ถอนสิทธิ์คือผู้ดูแลระบบฐานข้อมูล

การเพิกถอนคำสั่งเพิกถอน:

ถอน
บน
จาก;

คำสั่งนั้นคล้ายกับให้คำสั่งยกเว้นสำหรับคำหลักที่เพิกถอนและ 'จาก' ในคำสั่งที่กำหนดการดำเนินการที่รวมอยู่ในสิทธิ์จะถูกยกเลิกสำหรับผู้ใช้หรือรายการบทบาท การเพิกถอนจะซับซ้อนเมื่อสิทธิ์ถูกเผยแพร่จากผู้ใช้รายหนึ่งไปยังผู้ใช้รายอื่น

ลองมาตัวอย่างที่คล้ายกันเพื่อแสดงให้เห็นถึงการเพิกถอนสิทธิ์

ถอนการ ติดตั้งปรับปรุงในคณะการกรม จาก A1, A2;

ในตัวอย่างที่ระบุข้างต้นบัญชี A1 และ A2 จะถูกถอนออกจากสิทธิ์ของพวกเขาและไม่ได้รับอนุญาตให้ทำการแทรกและอัปเดตการดำเนินงานในตารางพนักงานและแผนก

ความแตกต่างที่สำคัญระหว่างการให้และการเพิกถอน

  1. คำสั่ง Grant ให้สิทธิ์แก่ผู้ใช้ในขณะที่คำสั่งเพิกถอนจะถอนสิทธิ์จากผู้ใช้
  2. ในระบบรวมศูนย์คำสั่ง DCL GRANT และเพิกถอนสามารถดำเนินการได้อย่างง่ายดาย เมื่อมีการกระจายการควบคุมการสอบถามมีความยืดหยุ่นมากขึ้น แต่ซับซ้อน คำสั่ง GRANT นั้นง่ายต่อการจัดการ แต่ในกรณีของคำสั่งเพิกถอนคำสั่งจะเรียกซ้ำในลักษณะ

ข้อสรุป

คำสั่ง GRANT มอบสิทธิพิเศษหรือการเข้าถึงผู้ใช้บนวัตถุฐานข้อมูล ในทางกลับกันคำสั่งถอนจะใช้สำหรับการลบสิทธิ์หรือสิทธิ์จากผู้ใช้บนวัตถุฐานข้อมูล

Top