Microsoft SQL Server’da roller (roles), kullanıcıların belirli izinlere sahip olmasını sağlayan mantıksal gruplardır. SQL Server’da üç ana rol türü bulunur. Bu rollerden biri olan Database Roles yapısına değinelim.
Bir veritabanında kullanıcıları gruplandırarak onlara belirli yetkiler vermek için kullanılan rollerdir.
Gerçek sistemlerde veritabanı kullanıcılarına database bazında bazı izinler verilir bu izinler genellikle db_datareader, db_datawriter, db_ddladmin yetkileridir. Bunun için tüm user’lara teker teker bu roller tanımlanacağına user mapping kısmından yeni bir role oluşturarak yanlış bir yetki vermenin önüne geçmiş oluruz.

Veritabanı bazında herhangi bir rol tanımlamak için kullanıcının db_securityadmin, db_owner yetkisine yada server seviyesinde dbcreater role,sysadmin yetkisine sahip olması gerekmektedir.

LOGIN1 kullanıcısının veritabanı altında ROLE oluşturması için db_owner yetkisi verilir. Yetkiden sonra LOGIN1 kullanıcısıyla sql server’a login oluyoruz. Database bazında role oluşturma işlemlerimiz için yetkili olan veritabanı altına girilmesi gerekmektedir.

New database Role… sekmesine tıkladıktan sonra role’ün ismini sahibini ve hangi database rolünü kullanacaksak onu seçmemiz gerekiyor. Oluşturulan role için ddladmin datareader datawriter seçiyorum. Şunu belirtmek gerekir owner kısmına tanımlanmış olan kullanıcı silinmek istendiğinde bu role ün kullanıcısı değiştirilmeden yani LOGIN1 silinmeden silinmez. Owner kısmına yetkili herhangi bir kullanıcı seçilebilir. Oluşturulan kullanıcının olması şart değil.

Memebers of this role kısmında veritabanı altında bulunan kullanıcıları Add.. kısmından ekleyebiliriz.

Role’le ilgili database altında gerekli veritabanı role’leri verdikten sonra belirlemiş olduğumuz role’ü seçip bazı yetkileri kısıtlayabiliriz.

Bundan sonra hangi nesneler üzerinde işlem yapmak istiyorsak onu seçiyoruz.

Database nesnesini seçip bu role’ün hangi database üzerinde yetkisini olmak istiyorsak onu seçiyoruz.

Database ile ilgili kısıtlama yapabiliriz. İlgili role’ün hangi veritabanı üzerinde ne gibi kısıtlamaları olması gerektiğini belirleyebiliriz.

Search kısmında mevcut veritabanı üzerinde bulunan bir tabloyu seçtikten sonra tabloda bulunan kolon seviyesinde kısıtlama işlemide yapabiliriz.

Column Permissions.. kısmına girdikten sonra belirlemiş olduğumuz bir kolonu şifreleme işlemi yapabiliriz.

Yukarıda tanımlanan işlerimizi test etmek için role tanımlanan database altında bir user oluşturalım.

Membership kısmında oluşturulan Role yapımız seçilmektedir.

Şimdi bu user ile bağlandıktan sonra select çekelim tarih kolonumuza izin vermemiştik deny demiştik.


Başlangıçta Role yapımızı oluşturduktan sonra herhangi bir insert yapmasın demiştik. İnsert işlemi sırasında hata mesajını alıyoruz.

Update işlemi ile ilgili herhangi bir kıstas belirtmediğimiz için sıkıntı yaşamadan update işlemini gerçekleştiriyoruz.

Oluşturulan Veritabanı Role yapısının yetkilendirme işlemini mevcut oluşturulan Role altında yapabildiğimiz gibi Role oluşturulan veritabanı Properties dedikten sonra gelen ekranda Permissions sekmesinden mevcut oluşturulan Role yapımıza kısıtlamalar yapabiliriz. Önceden oluşturulan Role yapımız permission bölümünde görülmektedir.

Bu makalede mssql server database seviyesinde role oluşturma konusunu ele almış olduk. Başka makalede görüşmek dileğiyle.
“İnsanlara merhamet etmeyene Allah merhamet etmez.” (Müslim)