ฉันคุ้นเคยกับการทำงานในสภาพแวดล้อมที่ปลอดภัยและดังนั้นฉันจึงออกแบบการอนุญาตของฉันให้ดีมาก สิ่งหนึ่งที่ฉันทำตามปกติคือDENY
ผู้ใช้สามารถระบุUPDATE
คอลัมน์ที่ไม่ควรอัปเดตได้อย่างชัดเจน
ตัวอย่างเช่น:
create table dbo.something (
created_by varchar(50) not null,
created_on datetimeoffset not null
);
คอลัมน์สองเหล่านี้ไม่ควรเปลี่ยนแปลงเมื่อมีการตั้งค่า ดังนั้นผมจะชัดเจนรับอนุญาตเกี่ยวกับพวกเขาDENY
UPDATE
เมื่อเร็ว ๆ นี้ในระหว่างการประชุมทีมนักพัฒนาได้ยกประเด็นที่ตรรกะเพื่อให้แน่ใจว่าเขตข้อมูลที่ไม่เคยได้รับการปรับปรุงควรจะอยู่ในเลเยอร์แอปพลิเคชันและไม่ใช่ชั้นฐานข้อมูลในกรณีที่ "พวกเขาจำเป็นต้องปรับปรุงค่า สำหรับฉันแล้วดูเหมือนว่าความคิด dev ทั่วไป (ฉันรู้ว่าฉันเคยเป็นหนึ่ง!)
ฉันเป็นสถาปนิกอาวุโสที่ บริษัท ของฉันและฉันได้ทำงานตามหลักการของสิทธิพิเศษจำนวนน้อยที่สุดที่ต้องใช้เพื่อให้แอปทำงานได้ สิทธิ์ทั้งหมดจะได้รับการตรวจสอบเป็นประจำ
แนวปฏิบัติที่ดีที่สุดในสถานการณ์นี้คืออะไร?