ขึ้นอยู่กับขนาดและข้อกำหนดของโครงการของคุณ
ฉันสามารถดูวิธีหนึ่งที่ข้อมูลเกี่ยวกับผู้ใช้สามารถแบ่งออกเป็นสองชุดโดยมีวัตถุประสงค์ที่แตกต่างกันและต้องการ:
- ข้อมูลประจำตัว: ชื่อผู้ใช้แฮรหัสผ่านที่อยู่อีเมลเวลาเข้าสู่ระบบล่าสุด ฯลฯ
- ข้อมูลโปรไฟล์ผู้ใช้ซึ่งรวมถึงค่ากำหนดของผู้ใช้กิจกรรมล่าสุดสถานะอัพเดท ฯลฯ
โปรดทราบว่ามีคุณลักษณะบางอย่างเกี่ยวกับผู้ใช้ที่สามารถตกอยู่ในหมวดหมู่ใด (เช่นวันเดือนปีเกิดของผู้ใช้) ความแตกต่างระหว่างชุดทั้งสองนี้คือชุดแรกจะถูกควบคุมอย่างแน่นหนาและผ่านเวิร์กโฟลว์บางตัวเท่านั้นที่สามารถแก้ไขได้ ตัวอย่างเช่นการเปลี่ยนรหัสผ่านอาจต้องระบุรหัสผ่านที่มีอยู่การเปลี่ยนอีเมลอาจต้องมีการยืนยันอีเมลและจะใช้ในกรณีที่ผู้ใช้ลืมรหัสผ่าน
การตั้งค่าไม่จำเป็นต้องใช้ ACL เช่นนั้นและผู้ใช้หรือแอปพลิเคชั่นอื่นสามารถแก้ไขได้ในทางทฤษฎีตราบใดที่ผู้ใช้ยินยอม เงินเดิมพันต่ำหากแอปพลิเคชั่นประสงค์ร้ายหรือข้อผิดพลาดเกิดความเสียหายกับข้อมูลหรือพยายามที่จะแก้ไข (สมมติว่ามีมาตรการรักษาความปลอดภัยอื่น ๆ เกิดขึ้น) อย่างไรก็ตามโดยทั่วไปจะเป็นหายนะหากชื่อผู้ใช้รหัสผ่านหรืออีเมลใด ๆ เนื่องจากสามารถใช้เพื่อสันนิษฐานตัวตนของผู้ใช้หรือปฏิเสธบริการหรือทำให้เกิดค่าใช้จ่ายในการสนับสนุนเป็นต้นสำหรับผู้ดูแลระบบ
ดังนั้นโดยปกติข้อมูลจะถูกจัดเก็บในระบบสองประเภท:
- โดยทั่วไปข้อมูลผู้ใช้จะอยู่ในไดเรกทอรีหรือโซลูชัน IAM
- ข้อมูลการตั้งค่าจะสิ้นสุดในฐานข้อมูล
ในทางปฏิบัติผู้คนจะละเมิดกฎเหล่านี้และใช้อย่างใดอย่างหนึ่ง (เช่นเซิร์ฟเวอร์ SQL ที่อยู่เบื้องหลังผู้ให้บริการสมาชิก ASP.NET)
เมื่อข้อมูลเอกลักษณ์มีขนาดใหญ่ขึ้นหรือองค์กรที่ใช้ข้อมูลมีขนาดใหญ่ขึ้นปัญหาต่าง ๆ จะคืบคลานเข้ามาตัวอย่างเช่นในกรณีของไดเรกทอรีมันจะพยายามทำซ้ำการเปลี่ยนรหัสผ่านทันทีไปยังเซิร์ฟเวอร์ทั้งหมดในสภาพแวดล้อมที่มีหลายเซิร์ฟเวอร์ อย่างไรก็ตามการตั้งค่าของผู้ใช้เพียงต้องการความสอดคล้องในที่สุด (FYI: ทั้งสองอย่างนี้คือการปรับให้เหมาะสมที่สุดของทฤษฎีบท CAPS)
ในที่สุดไดเรกทอรี (โดยเฉพาะไดเรกทอรีออนไลน์ / คลาวด์) จะออกโทเค็นการเข้าถึงสำหรับทรัพยากรอื่น ๆ โดยใช้โปรโตคอลเช่น OAUTH (เช่นพิจารณา Facebook, Google, บัญชี Microsoft, ADFS) ในขณะที่ฐานข้อมูลไม่ต้องการเช่นนั้น ฐานข้อมูลจะสนับสนุนโครงสร้างการรวมที่ซับซ้อนและการสืบค้นซึ่งไดเรกทอรีไม่ต้องการ
สำหรับรายละเอียดเพิ่มเติมการค้นหาฐานข้อมูลไดเรกทอรีและฐานข้อมูลตัวตนเล็กน้อยจะช่วยได้
ในที่สุดมันก็มาถึงสถานการณ์ของคุณและคาดว่าจะเกิดขึ้นในอนาคตรวมถึงการรวมเข้ากับบุคคลที่สาม (และสิ่งที่พวกเขากำลังใช้) หากเป็นโครงการที่มีอุปกรณ์ครบครันและคุณมั่นใจว่าคุณสามารถรักษาความปลอดภัยข้อมูลประจำตัวผู้ใช้และรับรองความถูกต้องได้อย่างถูกต้องคุณสามารถไปที่ฐานข้อมูล ไม่เช่นนั้นอาจคุ้มค่าที่จะสำรวจไดเรกทอรีข้อมูลระบุตัวตน
ถ้าคุณใช้ DB, IMO การใช้หนึ่ง DB กับสองจะทำให้การควบคุมการเข้าถึงทั้งในที่สุดสำหรับผู้ใช้และแอปพลิเคชัน