Loginlerin Owner Oldukları Veritabanında Backup Almasını Engellemek
Loginleri veritabanında db_owner olarak yetkilendirmemeliyiz. Bu güvenlik zaafiyetine neden olacaktır. Örneğin makalemize konu olan riskten bahsedelim. Uygulamacı owner’ı olduğu veritabanının backup’ını almak isterse, backup’ı alacağı disk olarak karşısına birkaç drive ismi çıkacaktır. Bu drive isimleri aslında sql server’ın bulunduğu sunucu üzerindeki disklere aittir. Uygulamacının bu drive’ları kendi diskleri zannederek backup’ı başlattığını düşünün. Eğer backup’ı aldığı diski bu şekilde doldurursa ve bu disk üzerinde veritabanı dosyaları varsa veritabanı çalışamaz hale gelecektir. Eğer işletim sisteminin olduğu diske almaya çalışırsa bu sefer işletim sistemini bile çökertebilir.
Bu yüzden veritabanında uygulamacıları owner yapmak yerine bir veritabanı rolü oluşturarak ihtiyacı kadar yetki verebilirsiniz. Veritabanı seviyesinde rol oluşturmak için “Veritabanı Seviyesinde Rol Oluşturmak” isimli makaleyi, tüm db_owner yetkisi olan loginleri görmek için de “SQL Server’da Tüm Yetkilendirmeleri Listelemek” isimli makaleyi okuyabilirsiniz.
Db_owner hakkında sahip kullanıcıların backup almasını engellemek yerine yukarda bahsettiğim işlemleri yapmanızı tavsiye ederim. Ama yine de db_owner olsun backup alamasın diyorsanız da aşağıdaki adımları takip edebilirsiniz.
Öncelikle backup alınmasını engellemek istediğiniz veritabanı sağ tıklayıp özellikler demelisiniz. Karşınız aşağıdaki gibi bir ekran gelecektir. Bu ekrandan Permissions sekmesine tıklayarak backup almasını engellemek istediğiniz db_owner hakkında sahip olan kullanıcıya tıklayarak aşağıda tarafta gördüğünüz Backup database kısmından Deny’ı seçmeli ve ok’e tıklamalısınız.
Deny ettikten sonra bu kullanıcıyla backup almak istendiğinde aşağıdaki gibi hata alacaktır.