Login oluşturmak ve yetkilendirmek

2 Eyl by NURULLAH ÇAKIR

Login oluşturmak ve yetkilendirmek

Security tab’ınan Logins’e sağ tıklayarak new login diyoruz. Açılan pencerede Login Name kısmından Login’imize bir isim veriyoruz. Veritabanı yöneticiliğinde herşeyin bir standardı olması ilkesinden yola çıkarak login ismimizi veritabanı isminin sonuna User koyarak oluşturmanızı tavsiye ederim. Örneğin deneme veritabanına bağlanacak kullanıcı denemeUser olabilir. 3 tip login tanımlayabilirsiniz.

  1. SQL Authentication kullanacak login
  2. Windows Authentication kullanacak login
  3. Server Login

SQL Authentication kullanacak login’e SQL Login diyebiliriz. Active Directory ile herhangi bir bağlantısı olmadan kullanabileceğiniz login türüdür.

Windows Authentication kullanacak Login ise Active Directory ile parola kontrolü yapan login çeşididir.

SQL Server Authentication’ı seçtiğiniz zaman karşınıza seçebileceğiniz 3 seçenek gelir.

Enforce Password Policy: Intance’n bulunduğu sunucu üzerindeki account policy nin kullanıp kullanılmayacağı

Enforce Password Expiration: Intance’n bulunduğu sunucu üzerindeki account policy de tanımlı olan expiration süresinin zorlanıp zorlanmayacağı

User must change password at next login: Tanımladığınız login’in ilk bağlandığında şifresini değiştirmeye zorlayıp zorlamayacağınızı belirler.

Windows Authentication da bu seçenekler pasif gelecektir. Çünkü parola kontrolü active directory’de yapılmaktadır.

Server Login’i başka bir makalede anlattığım için burada değinmiyorum.

SQL Login yada Windows Login olarak gerekli seçimleri yaptıktan sonra sol taraftaki sekmede Server Roles sekmesine geçebilirsiniz. Oluşturacağınız Login’e server seviyesinde yetki vermek istiyorsanız buradaki server level role’lerden birinde yetki verebilirsiniz. Bu role’lerden en önemlisi sysadmin dir.

Sysadmin: SQL Server’daki en yetkili kullanıcıdır. Her işi yapabilir. DBA’lerden başkasına verilmemelidir. Hatta DBA’lere bile belli bir bilgi ve tecrübe seviyesine eriştikten sonra verilmesi gerekir.

Diğer role’lerin detaylarına aşağıdaki linkten ulaşabilirsiniz.

https://msdn.microsoft.com/en-us/library/ms188659.aspx

Şahsi görüşüm olarak DBA’ler dışında herhangi bir login’e server seviyesinde bir role yetkisi verilmemelidir.

Server Level Role lerden sonra hemen altındaki sekmede User Mapping sekmesini göreceksiniz. Burada yetkilendirmek istediğiniz veritabanını seçip alt tarafta çıkan db role’lerden istediğinizi verebilirsiniz.

Database seviyesindeki role’lerin detaylarına aşağıdaki linkten ulaşabilirsiniz.

https://msdn.microsoft.com/en-us/library/ms189121.aspx

Database seviyesinde public yetki verip daha sonra veritabanı üzerine sağ tıklayarak properties->permission diyoruz. Buradan ilgili login’i seçerek  daha detaylı ve spesifik yetki verebiliriz. Ayrıca burada vereceğimiz bir yetki ile beraber with grant option seçeneğini seçersek yetki verdiğimiz login başka bir login’i de bu yetki ile yetkilendirebilir olacaktır.

Yetkilendirmenin başka bir çeşidi olarak şema bazında yetkilendirme yapabiliriz. SQL Server tabloları default olarak dbo şemasında oluşturur. Bazen aynı veritabanı altında farklı şemalar tanımlamamız gerekebilir. SQL Server bu konuda bize bu esnekliğide sağlıyor. Örneğin dbo şemasının dışında x isimli bir şema denemeUser isimli bir login tanımladık ve denemeUser isimli logine x şeması altında oluşturulan tablolarda select çekme yetkisi vermek istedik. Bu işlemi şu şekilde yapıyoruz.

Yetki vermek istediğimiz veritabanı altında security->schema sekmesinde ilgili şemamızı bulup sağ tıklayarak properties diyoruz. Search->Browse’a tıklayarak daha önce database level role üzerinden public yetkisi verdiğimiz kullanıcıyı seçiyoruz. Ve istediğimiz spesifik yetkiyi şema seviyesinde verebiliyoruz. Biz örneğimizde aşağıdaki gibi denemeUser’a x şemasında select yetkisi verdik.

Bu schema’da login’in tablo ya da fonksiyon oluşturabilmesi için veritabanı üzerine sağ tıklayarak properties diyoruz ve aşağıdaki gibi permission sekmesinden search’e tıklayarak ilgili kullanıcıyı bulup seçiyoruz. Daha sonra aşağıdaki gibi create table ve create function yetkisi veriyoruz. Dbo schema’sında yetkilendirme yapmadığımız için sadece kendi şemasında bu yetkileri olacaktır.

 

 

Tablo, View, Function, Stored Procedure gibi objeler üzerindede sağ tıklayarak properties dedikten sonra Permission sekmesinden spesifik kullanıcılara yetki verebilirsiniz.

Loading

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir