Video: Common design patterns with Azure Cosmos DB | Azure Friday 2024
NoSQL'de verileri güvence altına almanın en yaygın yöntemlerinden biri, her bir kaydı (veya belge veya grafiği, veritabanınızın türüne bağlı olarak) atamaktır.) rollerle bağlantılı bir izin kümesiyle birlikte. Bu, role dayalı erişim kontrolü veya kısaca RBAC'dir.
Bir belgede (toplu) NoSQL veritabanında saklanan bir web sitesi için bir haber bültenini düşünün. Daha genel bir rol yalnızca okuma izinlerine sahip olabilirken, düzenleyici rolünün belge için güncelleme izinleri olabilir.
Bu kullanım durumu, role izinleri atamanızı gerektirir, kullanıcı izinleri gerektirmez. Kullanıcılar bir veya daha fazla role atanabilir. Böylece, kullanıcılar rollerinin toplamına dayalı izinleri devralır.
Kullanıcıya belirli bir işlevi yerine getirme izni vermek için bir rol yaratmak zorunda kalmak ekstra iş gibi görünebilir ancak bu yaklaşım çok yararlıdır. Başka bir departmana taşınan veya tamamen ayrılan bir kullanıcı düşünün.
İzinleri bu kullanıcıdan bahsetmek ve değiştirmek veya kaldırmak her belge için el ile bakmak zorunda kalmak istemiyorsunuz. Bunun yerine kullanıcının rol atamalarını tek bir işlemde değiştirmeniz yeterlidir. Rol tabanlı erişim denetimini (RBAC) kullanmak, güvenlik izinlerinin uzun vadeli bakım için çok daha kolaydır.
Veritabanlarının izinleri ve rol devralma işlemlerini nasıl izlediğini izleyin. Her biri farklı bilgi türlerine erişimi artan stajyer, junior ve kıdemli sigortacılar olabilecek bir sigorta şirketine ait sigortacıları düşünün.
Genç sigortacılara, stajyerlere atanan izinler ve birkaç tane daha atayabilirsiniz. O zaman tüm kıdemli sigortacının izinlerini kıdemli sigortacılara, artı bir kaç tane daha atayabilirsiniz. Yine de, tüm bu rollere ek izinler eklemek isterseniz, üç özdeş değişiklik yapmanız gerekir.
Beş rol düzeyiniz varsa, bu beş kopyondur. Ayrıca, her sistemin bu gibi çok sayıda rolü olacaktır. Aynı sıradan göreve tekrar tekrar yerine getirmekten daha iyi bir yol var: Rol mirası.
Bazı sistemler role kalıtım içerir. Bu durumda, JuniorUnderwriter rolü TraineeUnderwriter rolünden miras alır ve SeniorUnderwriter rolü JuniorUnderwiter rolünden devralır. Artık tüm rollere izin eklemek için yapmanız gereken tek şey TraineeUnderwriter rolüne (en düşük miras sınıfı) eklemektir ve tüm roller izinleri devralır. Rol miraslarının anlaşılması ve korunması çok daha kolaydır.
Rol izin mantığı genellikle OR mantığıyla uygulanır. Yani, RoleA, RoleB ve RoleC olmak üzere üç rolü okuma iznine sahip bir rekora atarsanız, kullanıcının RoleA VEYA RoleB veya RoleC'ye sahip olması halinde bu iznine sahip olur.Bir kaydı bir rol okuma izni atamazsanız, hiçbir kullanıcı bu kayıtta okuma iznine sahip değildir (elbette ki devralma).