Veritabanı ve erişim denetimi izinlerini ayarlama

2 Cevap php

PHP ve MySQL kullanarak bir web uygulaması oluşturma bir ekibin parçasıyım. Uygulama farklı rollere sahip birden fazla kullanıcı olacaktır. Uygulama, coğrafi olarak dağıtılmış bir şekilde de kullanılacaktır.

Buna göre biz sadece belirli kayıtları gösterilir, böylece belirli bir veritabanı kayıtları yani değiştirir veritabanı sorguları için kullanıcı izinlerini kontrol eden bir erişim kontrol sistemi oluşturmak gerekir. Ulusal düzeyde bir kullanıcı için, ülkedeki tüm şehirler için kayıtlar görüntülenir edilmelidir Örneğin, şehir düzeyinde bir kullanıcı için, yalnızca bu kayıtlar, kullanıcının belirli bir şehir ile ilgili olduğu gösterilmelidir.

Ben SQL sorguları bilgileri hardcoding olmadan bilgi alma bu tür işleyebilir bir sistem tasarımı üzerinde yardıma ihtiyacım var.

Herhangi bir yardım mutluluk duyacağız.

Şimdiden teşekkürler

2 Cevap

Uygulamanın tasarımı gerekli güvenlik ihtiyaçlarına göre değişecektir.

Örneğin, bilgi çok sayıda veritabanı arasında veya tek bir veritabanında saklanır? O kendi özel izinlerini temsil veritabanı bir şema ile kullanıcı her TİPİ sunmak için önemli mi? Açıkçası bu soruların cevapları size veritabanı erişimi ya da değil daha güvenli bir sistem ihtiyacınız olup olmadığını göstermektedir.

Bunu yaparsanız, o zaman sistemde var olacak her kullanıcı türü için bir veritabanı kullanıcı oluşturun. Bir kullanıcı sisteme doğrular zaman, o kişi için kullanıcı türüne göre bir koşullu veritabanı bağlantısı oluşturmak zorundasınız vb uygun tablolar, görünümler, prosedürler, izinlerine sahip her kullanıcı sağlayın.

Uzak aşırı almak için, o da kesinlikle saklı işlemleri yoluyla veritabanına erişimi kontrol etmek için uygun olabilir. Sonra her veritabanı kullanıcı sadece depolanmış prosedürler onların ihtiyaç setine erişim olurdu.

Veritabanında güvenlik uygulayarak ağrı olabilir ve bunu sürdürmenin yanı sıra maliyet uygulamanın karmaşıklığını artırır ve IMO uygulamada genel uyumu azalma yok ama o da kesmek isteyebilirsiniz herkes için çok sıkı güvenlik duvarı sunulur veya başka olabilir sistemi kötüye.

Ne olursa olsun güvenlik amacıyla veritabanı içinde uygulamak ne, sen de tabii ki şu anda doğrulanmış kullanıcı ve türünü depolamak için bir oturum mekanizmasını kullanmanız gerekecektir. Belirli bir kullanıcı için işlevselliğini değiştirmek için kolay bir yolu belirli bir kullanıcıyı temsil etmek için bir sınıf içinde her kullanıcının mevcut eylemleri (işlevleri veya okuma yöntemleri) ve nitelikleri (ya da özelliklerini) saklanması için. Iki kişi Dashboard.php vurmak bu şekilde, onlar tam erişim hakkına sahip oldukları verileri görürsünüz.

Son olarak, bu tür onlar için bilgi ya da ne kullanıcının onlar denetlemek görmek için gereken şehirler olarak veritabanındaki kullanıcı hakkında depolanan bilgi yoluyla (gerekecek muhtemel ve) erişim kontrolleri bazı kontrol edebilirsiniz. Ardından kullanıcıya özel etki alanı nesneleri erişilebilir nesnelerin koleksiyon oluşturmak için bu bilgileri kullanabilirsiniz.

Kullanıcıların veritabanı motoruna doğrudan erişim var mı? Eğer bunu önlemek.

Uygulama BÜTÜN uygulama ihtiyacı sadece izinleriyle sağlayan özel bir kullanıcı hesabı ile veritabanına bağlanmak olun. Uygulama tanımlı kullanıcı ve rollere dayalı uygulama İÇ güvenlik dinlenme ve basit bir özel API yapın.

Bu kullanıcılar birden böyle uygulamalara erişmek ve kullanmak gerekebilir, ayrı ortak bir veri tabanında kullanıcıların depolama düşünün ve uygulamalar paylaşılmış özel API kullanarak danışmak zorunda.