ค้นหาเว็บไซต์

คำแนะนำเกี่ยวกับสิทธิ์ของ SQL Server


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

บทความนี้จะอธิบายสิทธิ์ SQL Server ประเภทต่างๆ รวมถึงสิทธิ์ผู้ใช้ระดับเซิร์ฟเวอร์และระดับฐานข้อมูล และให้คำแนะนำเกี่ยวกับวิธีการจัดการสิทธิ์เหล่านี้

ส่วนประกอบสำคัญของการรักษาความปลอดภัยของ SQL Server

Microsoft SQL Server คือระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (DBMS) ที่รองรับการประมวลผลธุรกรรม ระบบธุรกิจอัจฉริยะ และแอปพลิเคชันการวิเคราะห์ที่หลากหลายในสภาพแวดล้อมไอทีขององค์กร Microsoft SQL Server เป็นหนึ่งในสามเทคโนโลยีฐานข้อมูลชั้นนำของตลาด

SQL Server มีองค์ประกอบความปลอดภัยหลักสามองค์ประกอบที่ช่วยให้ DBA และผู้ดูแลระบบสามารถควบคุมว่าผู้ใช้สามารถเข้าสู่ระบบเซิร์ฟเวอร์ได้ ข้อมูลใดบ้างที่พวกเขาสามารถเข้าถึง และการดำเนินการใดที่พวกเขาได้รับอนุญาตให้ดำเนินการกับข้อมูลนั้น ส่วนประกอบเหล่านี้คือ:

  • หลักความปลอดภัย — บุคคลหรือกระบวนการที่ได้รับอนุญาตให้เข้าถึงอินสแตนซ์ SQL Server เฉพาะ
  • ความปลอดภัย — ทรัพยากรเซิร์ฟเวอร์และฐานข้อมูลที่ได้รับการควบคุมการเข้าถึง
  • สิทธิ์ — ประเภทของการเข้าถึงที่ตัวการมีต่อความปลอดภัยเฉพาะ

อาจารย์ใหญ่ฝ่ายความมั่นคง

หลักการรักษาความปลอดภัยคือข้อมูลเฉพาะตัวที่ใช้ SQL Server และสามารถให้สิทธิ์ในการเข้าถึงและแก้ไขข้อมูลได้ Principals อาจเป็นบุคคล กลุ่มผู้ใช้ บทบาท หรือเอนทิตีที่ได้รับการปฏิบัติเหมือนเป็นบุคคล (เช่น dbowner, dbo หรือ sysadmin)

หลักการรักษาความปลอดภัยสามารถสร้างและจัดการได้สองวิธี:

  • SQL Server Management Studio (SSMS) — สภาพแวดล้อมนี้สร้างขึ้นสำหรับการจัดการโครงสร้างพื้นฐาน SQL ต่างๆ รวมถึง SQL Server และฐานข้อมูล Azure SQL SMSS มีเครื่องมือสำหรับ:

    • การกำหนดค่า SQL Server และฐานข้อมูล การตรวจสอบ และการดูแลระบบอินสแตนซ์
    • การปรับใช้ ตรวจสอบ และอัปเกรดส่วนประกอบแอปพลิเคชันระดับข้อมูล
    • การสร้างแบบสอบถามและสคริปต์
  • Transact-SQL (T-SQL) — ส่วนขยาย SQL ที่เป็นกรรมสิทธิ์นี้เป็นศูนย์กลางในการใช้บริการ Microsoft SQL คำสั่งฐานข้อมูลทั้งหมดที่ให้ไว้ในบทความนี้เป็นคำสั่ง T-SQL

การรักษาความปลอดภัยตามบทบาท

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

สามารถใช้ทั้งบทบาทระดับเซิร์ฟเวอร์และระดับฐานข้อมูล

บทบาทระดับเซิร์ฟเวอร์

ตามชื่อที่แสดง บทบาทเซิร์ฟเวอร์อนุญาตให้คุณให้สิทธิ์ระดับเซิร์ฟเวอร์ บทบาทของเซิร์ฟเวอร์มีสองประเภท:

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

การสร้างบทบาทเซิร์ฟเวอร์ที่ผู้ใช้กำหนดนั้นง่ายดาย:

  1. สร้างบทบาทโดยใช้คำสั่งนี้:
CREATE SERVER ROLE serverrole
  1. ให้สิทธิ์แก่บทบาทโดยใช้คำสั่งตามตัวอย่างนี้:
GRANT ALTER ANY DATABASE TO serverrole
  1. เพิ่มตัวการให้กับบทบาทโดยใช้คำสั่งนี้:
ALTER SERVER ROLE serverrole ADD MEMBER [testexampleuser]

ทำซ้ำขั้นตอนที่ 2 และ 3 เพื่อให้สิทธิ์เพิ่มเติม และเพิ่มหลักการให้กับบทบาท

บทบาทระดับฐานข้อมูล

บทบาทฐานข้อมูลทำงานเหมือนกับบทบาทของเซิร์ฟเวอร์ ยกเว้นว่าจะอนุญาตให้คุณกำหนดสิทธิ์ระดับฐานข้อมูลแทนสิทธิ์ระดับเซิร์ฟเวอร์

หากต้องการสร้างบทบาทฐานข้อมูล ให้ใช้ขั้นตอนเดียวกันกับรายละเอียดข้างต้นสำหรับบทบาทเซิร์ฟเวอร์ ตัวอย่างเช่น คุณอาจใช้คำสั่งต่อไปนี้:

CREATE ROLE dbrole

GRANT SELECT ON DATABASE::TestDatabase TO dbrole

ALTER ROLE dbrole ADD MEMBER exampleuser2

หลักทรัพย์ค้ำประกัน

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

สิทธิ์

สิทธิ์คือประเภทของการเข้าถึงที่มอบให้แก่ผู้รักษาความปลอดภัยเฉพาะ ที่ระดับเซิร์ฟเวอร์ สิทธิ์จะถูกกำหนดให้กับการเข้าสู่ระบบ SQL Server และบทบาทของเซิร์ฟเวอร์ ที่ระดับฐานข้อมูล พวกเขาถูกกำหนดให้กับผู้ใช้ฐานข้อมูลและบทบาทของฐานข้อมูล

คุณมีสามวิธีหลักในการควบคุมสิทธิ์:

  • Grant — คำสั่ง GRANT ช่วยให้ตัวการสามารถเข้าถึงความปลอดภัยที่ระบุได้
  • ปฏิเสธ — คำสั่ง DENY ป้องกันไม่ให้ตัวการเข้าถึงความปลอดภัยที่ระบุ
  • เพิกถอน — คำสั่ง REVOKE จะกำจัดสิทธิ์ที่ได้รับก่อนหน้านี้สำหรับความปลอดภัยเฉพาะเจาะจง

โปรดทราบว่าคำสั่งสิทธิ์ DENY จะแทนที่สิทธิ์ที่ได้รับทั้งหมด

ลำดับชั้นของการอนุญาต

Securables ได้รับการจัดระเบียบเป็นลำดับชั้นที่ประกอบด้วยเซิร์ฟเวอร์ ฐานข้อมูล สคีมา และอ็อบเจ็กต์ที่อยู่ภายในสคีมาเหล่านั้น สามารถกำหนดสิทธิ์ได้ที่เซิร์ฟเวอร์ ฐานข้อมูล สคีมา หรือระดับออบเจ็กต์เดียว

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

วิธีจัดการสิทธิ์เซิร์ฟเวอร์ SQL อย่างปลอดภัย

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

ยึดหลักสิทธิพิเศษน้อยที่สุด

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

  • ผู้ดูแลระบบ SQL Server — ต้องการความสามารถในการเพิ่มและลบฐานข้อมูลทั้งหมด
  • นักพัฒนา — จำเป็นต้องสร้าง ออกแบบ แก้ไข และลบออบเจ็กต์ฐานข้อมูล
  • แอปพลิเคชัน — จำเป็นต้องดูและแก้ไขข้อมูล
  • ผู้ใช้ปลายทาง — จำเป็นต้องใช้ข้อมูลในรูปแบบอ่านอย่างเดียว หรือทั้งอ่านและแก้ไขข้อมูล

ใช้บทบาท

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

ทำความเข้าใจลำดับชั้นของการอนุญาตและการสืบทอด

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

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

Netwrix Auditor ปรับปรุงความปลอดภัยของเซิร์ฟเวอร์ SQL อย่างไร

การมองเห็นสิทธิ์ SQL Server ของคุณเป็นสิ่งสำคัญในการจัดการสิทธิ์เหล่านี้อย่างมีประสิทธิภาพ Netwrix Auditor สำหรับ SQL Server สามารถช่วยให้คุณเข้าใจสิทธิ์และติดตามการเปลี่ยนแปลงสิทธิ์ได้ คุณได้รับ:

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

นอกจากนี้ Netwrix Auditor ยังให้บริการ:

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

บทความที่เกี่ยวข้อง