Skip to main content

การควบคุมการเข้าถึงข้อมูลด้วย Views ใน SQL

Anonim

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

ทำไมต้องใช้ Views?

มีสองเหตุผลหลักที่ทำให้ผู้ใช้สามารถเข้าถึงข้อมูลผ่านมุมมองแทนที่จะให้สิทธิ์เข้าถึงตารางฐานข้อมูลโดยตรง:

  • Views ให้การรักษาความปลอดภัยแบบละเอียดและเรียบง่าย. คุณสามารถใช้มุมมองเพื่อ จำกัด ข้อมูลที่ผู้ใช้ได้รับอนุญาตให้ดูในตาราง ตัวอย่างเช่นถ้าคุณมีตารางพนักงานและต้องการให้ผู้ใช้บางรายสามารถเข้าถึงระเบียนของพนักงานที่ทำงานเต็มเวลาได้คุณสามารถสร้างมุมมองที่ประกอบด้วยเฉพาะระเบียนเหล่านั้นได้ นี่เป็นวิธีที่ง่ายกว่าทางเลือก (การสร้างและรักษาตารางเงา) และทำให้มั่นใจได้ถึงความสมบูรณ์ของข้อมูล
  • การดูช่วยลดความยุ่งยากในการใช้งานของผู้ใช้. Views ซ่อนรายละเอียดที่ซับซ้อนของตารางฐานข้อมูลของคุณจากผู้ใช้ปลายทางที่ไม่ต้องการดู หากผู้ใช้ทิ้งเนื้อหาของข้อมูลพร็อพเพอร์ตี้ผู้ใช้จะไม่เห็นคอลัมน์ในตารางที่ไม่ได้เลือกไว้ในมุมมองและอาจไม่เข้าใจ วิธีนี้ช่วยป้องกันไม่ให้เกิดความสับสนเนื่องจากคอลัมน์ที่มีชื่อไม่ดีมีตัวระบุที่ไม่ซ้ำและคีย์ตาราง

การสร้างมุมมอง

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

CREATE VIEW viewname AS

ตัวอย่างเช่นถ้าคุณต้องการสร้างมุมมองพนักงานเต็มเวลาที่ฉันพูดถึงในส่วนก่อนหน้าคุณจะออกคำสั่งต่อไปนี้:

CREATE VIEW เต็มเวลา ASSELECT first_name, last_name, employee_idจากพนักงานWHERE status = 'FT'

การแก้ไขมุมมอง

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

ALTER VIEW เต็มเวลา ASSELECT first_name, last_name, employee_id, telephoneจากพนักงานWHERE status = 'FT'

การลบมุมมอง

การลบข้อมูลพร็อพเพอร์ตี้จากฐานข้อมูลโดยใช้คำสั่ง DROP VIEW เป็นการง่าย ตัวอย่างเช่นถ้าคุณต้องการลบมุมมองพนักงานเต็มเวลาคุณจะใช้คำสั่งต่อไปนี้:

DROP VIEW เต็มเวลา