คุณสามารถให้สิทธิ์ มอบหมาย หรือเพิกถอนสิทธิ์บนวัตถุมากมายในฐานข้อมูลของ SQL Server บทความนี้จะแสดงวิธีการมอบสิทธิ์และเพิกถอนสิทธิ์
มอบสิทธิ์บนตาราง
สามารถมอบสิทธิ์ให้ผู้ใช้บนตารางได้ สิทธิ์ที่มอบหมายอาจรวมถึง SELECT, INSERT, UPDATE, DELETE, REFERENCES, ALTER หรือ ALL
ไวยากรณ์
GRANT quyen ON doi_tuong TO nguoi_dung;
quyen: สิทธิ์ที่ระบุให้ผู้ใช้ อาจเป็น:
| สิทธิ์ | คำอธิบาย |
|---|---|
| SELECT | ความสามารถในการรันคำสั่ง SELECT บนตาราง |
| INSERT | ความสามารถในการรันคำสั่ง INSERT บนตาราง |
| UPDATE | ความสามารถในการรันคำสั่ง UPDATE บนตาราง |
| DELETE | ความสามารถในการรันคำสั่ง DELETE บนตาราง |
| REFERENCES | ความสามารถในการสร้างเงื่อนไขอ้างอิงตาราง |
| ALTER | ความสามารถในการรันคำสั่ง ALTER TABLE บนตารางเพื่อเปลี่ยนแปลงโครงสร้าง |
| ALL | ALL ไม่ได้มอบสิทธิ์ทั้งหมดบนตาราง แต่มอบสิทธิ์ตามมาตรฐาน ANSI-92 รวม SELECT, INSERT, UPDATE, DELETE, REFERENCES |
doi_tuong: ชื่อวัตถุฐานข้อมูลที่ต้องการมอบสิทธิ์ ในกรณีมอบสิทธิ์บนตาราง คือชื่อตาราง
nguoi_dung: ชื่อผู้ใช้ที่จะได้รับสิทธิ์
ตัวอย่าง
หากต้องการมอบสิทธิ์ SELECT, INSERT, UPDATE และ DELETE บนตาราง nhanvien ให้ผู้ใช้ smithj ให้รันคำสั่ง GRANT ด้านล่าง
GRANT SELECT, INSERT, UPDATE, DELETE ON nhanvien TO smithj;
คุณสามารถใช้คีย์เวิร์ด ALL เพื่อระบุว่าต้องการมอบสิทธิ์ทั้งหมดตามมาตรฐาน ANSI-92 ให้ผู้ใช้ smithj
GRANT ALL ON nhanvien TO smithj;
หากต้องการมอบสิทธิ์ SELECT บนตารางให้ผู้ใช้ทุกคน ให้มอบสิทธิ์ให้กลุ่มสิทธิ์สาธารณะ (PUBLIC)
GRANT SELECT ON nhanvien TO PUBLIC;
ดูเพิ่มเติม: วิธีมอบสิทธิ์ผู้ใช้ใน MS SQL Server
เพิกถอนสิทธิ์บนตาราง
หลังจากมอบสิทธิ์แล้ว คุณอาจต้องการเพิกถอนสิทธิ์ที่ให้ไปด้วยคำสั่ง REVOKE สามารถเพิกถอน SELECT, INSERT, UPDATE, DELETE, REFERENCES, ALTER หรือ ALL
ไวยากรณ์
REVOKE quyen ON doi_tuong FROM nguoi_dung;
quyen: สิทธิ์ที่จะเพิกถอน อาจเป็น:
| สิทธิ์ | คำอธิบาย |
|---|---|
| SELECT | ความสามารถในการรันคำสั่ง SELECT บนตาราง |
| INSERT | ความสามารถในการรันคำสั่ง INSERT บนตาราง |
| UPDATE | ความสามารถในการรันคำสั่ง UPDATE บนตาราง |
| DELETE | ความสามารถในการรันคำสั่ง DELETE บนตาราง |
| REFERENCES | ความสามารถในการสร้างเงื่อนไขอ้างอิงตาราง |
| ALTER | ความสามารถในการรันคำสั่ง ALTER TABLE บนตารางเพื่อเปลี่ยนแปลงโครงสร้าง |
| ALL | ALL ไม่ได้เพิกถอนสิทธิ์ทั้งหมดบนตาราง แต่เพิกถอนสิทธิ์ตามมาตรฐาน ANSI-92 รวม SELECT, INSERT, UPDATE, DELETE, REFERENCES |
doi_tuong: ชื่อวัตถุฐานข้อมูลที่ต้องการเพิกถอนสิทธิ์ ในกรณีเพิกถอนสิทธิ์บนตาราง คือชื่อตาราง
nguoi_dung: ชื่อผู้ใช้ที่จะถูกเพิกถอนสิทธิ์
ตัวอย่าง
หากต้องการเพิกถอนสิทธิ์ DELETE บนตาราง nhanvien จากผู้ใช้ anderson ให้รันคำสั่ง REVOKE ด้านล่าง
REVOKE DELETE ON nhanvien FROM anderson;
หากต้องการเพิกถอนสิทธิ์ตามมาตรฐาน ANSI-92 บนตาราง nhanvien จากผู้ใช้ anderson ใช้คีย์เวิร์ด ALL
REVOKE ALL ON nhanvien FROM anderson;
หากคุณได้มอบสิทธิ์ SELECT ให้กลุ่มผู้ใช้สาธารณะ (PUBLIC) บนตาราง nhanvien และต้องการเพิกถอนสิทธิ์นี้ ใช้คำสั่ง REVOKE ด้านล่าง
REVOKE SELECT ON nhanvien FROM PUBLIC;