แนวปฏิบัติที่เหมาะสมที่สุดสำหรับการใช้ schema ใน SQL Server คืออะไร


24

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

คำตอบ:


16

เราใช้พวกเขา

  • เพื่อแยกการอนุญาตต่อลูกค้า (เช่นเรามีเดสก์ท็อป WebGUI ฯลฯ schema)
  • สำหรับการจัดกลุ่มแบบลอจิคัลเช่น (Data และ Staging schemas สำหรับตารางของเรา)

การสังเกตที่เป็นประโยชน์และเป็นประโยชน์ผ่านกระดาษสีขาวที่ Marian กล่าวถึง:

  • GRANT บน schema: ไม่มีสิทธิ์เพิ่มเติมสำหรับแต่ละวัตถุ ดังนั้น proc ใหม่ใน WebGUI schema จะมีสิทธิ์ของ schema โดยอัตโนมัติ
  • การจัดกลุ่มที่ดีใน SSMS Object Explorer
  • OBJECT_SCHEMA_NAME
  • คุณถูกบังคับให้มีคุณสมบัติชื่อวัตถุ (ซึ่งเป็นแนวปฏิบัติที่ดีที่สุด)

15

ผมคิดว่าคำตอบที่สามารถพบได้ในบทความนี้ MSDN: SQL Server Best Practices - การดำเนินงานของวัตถุฐานข้อมูล Schemas

ข้อความอ้างอิง: "เอกสารทางเทคนิคฉบับนี้กล่าวถึงโอกาสในการปรับปรุงการบริหารความปลอดภัยของฐานข้อมูลผู้ใช้และแสดงแนวทางปฏิบัติที่ดีที่สุดเกี่ยวกับการใช้ schema เพื่อจัดการวัตถุฐานข้อมูลในฐานข้อมูลการพัฒนาและฐานข้อมูลผลิตโดยเฉพาะ

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

ฉันใช้ส่วนที่สามเป็นพิเศษ - เชื่อมโยงกลุ่มของวัตถุเข้าด้วยกันโดยยึดตามความหมายเชิงตรรกะ - สกีมาที่แตกต่างกันของโครงการต่าง ๆ ในฐานข้อมูลเดียวกัน


-2

คุณอาจต้องการไปที่ข้อความพื้นฐานบางส่วนในที่นี้เพื่อตอบคำถามของคุณ เอกสารเกี่ยวกับแบบจำลองฐานข้อมูลเชิงสัมพันธ์จากEF CoddและCJ Dateตอบคำถามทั่วไปมากมายที่เกี่ยวข้องกับการออกแบบประสิทธิภาพความปลอดภัยการออกแบบสคีมาที่ดีที่สุดในที่สุดเมื่อบรรพบุรุษของโมเดลฐานข้อมูลเชิงสัมพันธ์ที่ทันสมัยผลงานของพวกเขาเป็นรากฐานสำหรับ DB2 ORACLE, SQL Server (Microsoft และ Sybase), Ingres, MySQL และโซลูชันฐานข้อมูลเชิงสัมพันธ์อื่น ๆ


1
สิ่งนี้ดูเหมือนจะเป็นการพูดคุยเกี่ยวกับการออกแบบฐานข้อมูลในแง่ทั่วไปและไม่เกี่ยวกับ SQL Server Schemas
AakashM
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.