Veritabanı yöneticileri olarak en büyük önceliğimiz sistemin sürdürülebilirliği ve performansıdır. Çoğu zaman geliştiricilere veya son kullanıcılara veritabanı üzerinde nesne oluşturma yetkisi (DDL) vermemiz gerekir. Ancak bu yetkiyi kontrolsüz bıraktığımızda, kullanıcılar varsayılan olarak PRIMARY filegroup üzerinde tablo oluşturmaya başlar. Bu durum, kritik sistem tablolarının bulunduğu alanın şişmesine, disk yönetiminin zorlaşmasına ve yedekleme stratejilerinin karmaşıklaşmasına neden olur. İşte bu noktada, kullanıcıya DDL yetkisi versek bile, onun veritabanı genelinde tablo oluşturmasını engelleyip sadece bizim belirlediğimiz “güvenli bölgelerde” çalışmasını sağlamamız gerekir.
Oluşturduğumuz veritabanı stratejisinde veritabanının tablo metadata bilgileri belirlediğimiz bir filegroupta olmasına rağmen DDL yetkisi olan kullanıcı o an bir tablo oluşturmak istediğinde veya başka bir ortamda alınmış olan scripti çalıştırdığında bizim belirlemiş olduğumuz filegroup dışında veritabanını büyütür.
Bu sorunun önüne geçmek için yetki verdiğimiz veritabanı altında bulunan Security kısmında veritabanında yetkili User’ın properties ekranına girilir. Bu yetki kaldırma işlemini yetkili olan bir kullanıcı ile yapılması gerekmektedir.

Gelen ekranda Securables bölümüne girdikten sonra Search denilir.

Specific objects.. kısmını seçtikten sonra OK butonuna tıklanır.

Gelen ekranda Object Types… kısmına giriş yapılır.

Genel bir işlem yapacağımız için Databases sekmesi seçilir. Ok denilip çıkılır.

Database seçimi yapmak için Browse.. bölümünden hangi veritabanı üzerinde kısıtlama yapmak istiyorsak o veritabanı seçilmektedir.

İlgili veritabanını seçip OK ile işlemimizi tamamlıyoruz.


Belirlemiş olduğumuz veritabanı üzerinde ilgili loginin Create Table oluşturma yetkisini Deny checbox’ı ile elinden alıyoruz.

Yukarıdaki işlemin create scriptini alıp işlemlerimi tamamlıyorum
use [AdventureWorks2017]
GO
DENY CREATE TABLE TO [LOGIN1] AS [dbo]
GO
Yetki kısıtlaması yaptığımız login ile giriş yaptıktan sonra tablo oluşturmak istediğimizde tablo oluşturamayacağımıza dair hata mesajıyla karşılaşırız.

Kullanıcıların tablo oluşturma yetkilerini fiziksel depolama katmanıyla ilişkilendirmek, veritabanı yönetiminde profesyonel bir disiplin sağlar. Bu yöntemle hem PRIMARY filegroup’u temiz tutmuş oluruz hem de olası bir disk dolması durumunda sistemin tamamının etkilenmesini engelleriz. Her kullanıcının kendi filegroup’unda çalışması, aynı zamanda dosya bazlı yedekleme (Filegroup Backup) süreçlerini de hızlandırarak felaket kurtarma senaryolarımızı daha esnek hale getirir.
Başka makalede görüşmek dileğiyle..
Bilesiniz ki Kalpler Ancak Allah’ı Anmakla Huzur Bulur. Rad-28
