SQL Server Kullanıcı Oluşturma, Rol ve İzin Ataması Yapma

Fırat Boyan 28 Aralık 2016 3
SQL Server Kullanıcı Oluşturma, Rol ve İzin Ataması Yapma
  • Sumo

 

SQL Server Management Studio ile Kullnıcı Oluşturma, Rol ve İzin Ataması Yapma

Bu makalemde sizlere SQL Server Management Studio üzerinde Yeni Kullanıcı (user ya da hesap da diyebiliriz) oluşturma ve bu kullanıcıya SQL Server üzerinde Server bazlı ve Database (veritabanı) bazlı kullanıcı izin atamalarının nasıl yapılacağından bahsediyor olacağım.

Sql Server’daki kullanıcıların hesaplarına Logins adı verilmektedir. Her bir login’e ayrı yetkiler verilebilir, erişebileceği veri tabanları belirlenebilir. Sql Server’da güvenlik seviyesi iki katmandan oluşur. Bunlar, Server ve Veritabanı seviyeleridir. Login hesabı ilk önce server seviyesinde oluşturulur, daha sonra ilgili veri tabanına mapped denilen ataması yapılır ve veri tabanına erişimi sağlanmış olur.

Öncelikle Yeni bir Kullanıcı ekleyelim. Bunun için;

1- Sırasıyla Security klasörü altındaki Logins klasöründe sağ tıklayarak New Login… seçeneğini seçiyorum.

SQL Server Kullnıcı Oluşturma, Rol ve İzin Ataması Yapma

2- Karşıma çıkan Login-New Penceresinde Login name: bölümünde yeni oluşturacağım kullanıcım için bir isim belirliyorum.

3- Kullanıcı adını tanımladıktan sonra, SQL Server Management Studio’ya nasıl bağalanacağını seçmemiz gerekiyor.

Bunun için iki seçenek mevcut;

3.1- Windows authentication: Windows authentication, sadece Windows hesaplarından açılan oturumları kabul eder. Bir kullanıcı Windows kullanıcı hesabı ile bağlandığında, SQL Server hesap adı ve principal token, yani Windows hesabı belirteci kullanarak parola doğrulanır. Bu kullanıcı kimliğinin Windows tarafından onaylandığı anlamına gelir. Windows Authentication mode’u, Kerberos güvenlik protokolü, güçlü parolalar için karmaşıklık ilkesi ile hesap kilitleme ve parola süresi dolma (Password expiration) desteği sağlar.

NOT: Windows authentication, sadece Windows hesaplarından & Active Directory domain hesaplarından açılan oturumları kabul edeceği için;

* Sisteminiz domain ortamında ise kullanıcı adını yukarıda FIRATBOYAN\firat şeklinde belirlediğim gibi [DomainAdi\KullaniciAdi] şeklinde belirlemeniz gerekecektir,

* Workgroup ortamında ise, [PC-adi(Hostname)\KullaniciAdi] şeklinde belirlemeniz gerekecektir.

Oluşturacağım kullanıcıyı önce Windows authentication Mode’da oluşturuyorum.
Örnek olarak FIRATBOYAN\firat kullanıcısını oluşturuyorum.

SQL Server Kullnıcı Oluşturma, Rol ve İzin Ataması Yapma

SQL Server Kullnıcı Oluşturma, Rol ve İzin Ataması Yapma

SQL Server authentication: SQL Server Authentication ile ilgili bilinmesi gereken çok önemli bir nokta vardır;
SQL Server’ın login parolasının şifreli bir kopyasını değil parola’nın HASH‘ini sakladığıdır. Bir login işlemi gerçekleştiğinde kullanıcı tarafından gönderilen HASH’li şife ve saklanan HASH karşılaştırılır. Bu iki HASH eşleşirse parola kabul edilir ve giriş başarılı olur.

Oluşturduğum FIRATBOYAN/firat kullanıcısını bu adımda da SQL Server authentication’da oluşturuyorum.
Örnek olarak FIRAT kullanıcısını oluşturuyorum.

* Enforce password policy – Domaindeki veya Windows işletim sisteminde password policy kuralları geçerli olur.
* Enforce password expiration – Domaindeki veya Windows işletim sisteminde şifre geçerlilik süresi bu seçenek ile geçerli olur.
* User must change password at next login – Kullanıcı bir sonraki oturumunda şifresini değiştirmek zorunda kalır. SSMS ile bu şifre değiştirebilir.
* Default Database – SSMS bağlanıldığında kullanıcı bazlı, çalışılacak olan veritabanı otomatik olarak gelir.
* Default Language – SSMS üzerindeki dil ayarları, format ve hata mesajları istenen dilde bu seçenek ile ayarlanabilir.

SQL Server Kullnıcı Oluşturma, Rol ve İzin Ataması Yapma

SQL Server Kullnıcı Oluşturma, Rol ve İzin Ataması Yapma

NOT: SQL Server authentication mode, Windows hesapları (Active Directory domain hesapları ya da local hesaplar) ile çalışmadığı için, bu mod seçili iken, kullanıcı adını [DomainAdi\KullaniciAdi] ya da [PC-adi(Hostname)\KullaniciAdi] şeklinde domain belirterek yazmanıza izin verMEyecek ve aşağıdaki hata ile karşılaşacaksınız. Bu nedenle domain adı belirtmeden, sadece kullanıcı adı berlitmelisiniz.

SQL Server Kullnıcı Oluşturma, Rol ve İzin Ataması Yapma

Kullanıcımı SQL Server authentication mode ile oluşturdum ve bu adımdan devam ediyorum. Oluşturduğum kullanıcının sırasıyla Security > Logins klasörleri altında yer aldığını görebiliyoruz. Bundan sonraki adımlarda, Kullanıcıya Server ve Database seviyelerinde rollerin ve izinlerin atanması işlemini uygulamak için oluşturdum FIRAT kullanıcısı üzerinde sağ tıklayıp Properties‘e tıklıyorum.

SQL Server Kullnıcı Oluşturma, Rol ve İzin Ataması Yapma

Kullanıcı Rol ve İzin Atamaları
1) Server Rolleri – Server Roles

Login Properties penceresinde Server Roles alanında kullanıcının veritabanı sunucusunun çalışması ile ilgili işlemlerin yürütülmesine yönelik rollerin atandığı alandır. Daha başka bir ifade ile; oluşturulan kullanıcının atandığı veritabanında yürüteceği yönetimsel rolleri, yani Server Rollerini belirler.

Bir Sql Server hesabı varsayılan olarak hiçbir yönetici yetkisi olmadan oluşturulur. Bu role de public rolü denir. Oluşturduğunuz bir kullanıcıya yönetici yetkisi vermek istiyorsanız, gerekli yetkiyi bu alandan vermeniz gerekiyor.

Yönetimsel Rollere bir göz atalım:

**bulkadmin (BulkInsertAdministrator):
Toplu ekleme yöneticisi. Toplu Insert işlemlerini yerine getirir.
NOT: Genelde başka bir veri kaynağından ya da Excel’den veri çekme işlemleri için kullanılır.
**dbcreator (Database Creators):
Veritabanı oluşturucusu. Veritabanı oluşturulması ve değiştirilmesi işlemlerini yönetir.
NOT: Bu role sahip olan kullanıcı, herhangi bir veritabanı oluşturabilir, silebilir veya düzenleyebilir. Yazılımcılara test amaçlı bu yetki verilebilir.
**diskadmin (Disk Administrator):
Disk yöneticisi. Veritabanı dosyalarını yönetir.
**processadmin (Process Administrator):
İşlem yöneticisi. SQL Server’daki process’leri kontrol eder.
NOT: Bu role sahip olan kullanıcı, çalışan tüm process’leri görebilir, kill komutu ile istenen process’leri sonlandırabilir.
**public (Herkese Kısıtlı Hak) : SQL Server üzerinde standart ayarlarla giriş yapan herkesin atandığı roldür. Bu kural ile tüm kullanıcıların kısıtlı hakları vardır. Daha sonra bu kullanıcılara kural değişikliği yapılarak diğer kurallar atanabilir.
**securityadmin (Seurity Administrator):
Güvenlik Yöneticisi. SQL Server login bilgilerini yönetir.
NOT: Bu role sahip olan kullanıcı, SQL Server hesabı oluşturup silebilir. Rol oluşturma yetkisi yoktur.
**serveradmin (Server Administrator):
Sunucu yöneticisi. Sunucu temelli ayarlamalardan sorumludur.
**setupadmin (Setup Administrator):
Kurulum yöneticisi. SQL Server Raplication’ı kurar.
NOT: Bu role sahip olan kullanıcı, Linked Server oluşturma yetkileri vardır.
**sysadmin (System Administrator):
Sistem yöneticisi. Server’daki hemen her işi yapabilir.
NOT: Bu role sahip olan kullanıcı, tüm yönetici yetkilerine sahip olur.

SQL Server Kullnıcı Oluşturma, Rol ve İzin Ataması Yapma

2) Database atama & Veritabanı Rol ve İzin Atamaları – User Mapping

Sql Server’da kullanıcıya Server Roles verilmesi, birçok yetkiyi de beraberinde getirir. Kullanıcıya sadece istenen veri tabanlarında yetki verilmek istendiği zaman Login Properties penceresinde User Mapping alanında, öncelikle kullanıcıya bir veritabanı atıyoruz ve kullanıcının atandığı veritabanına bağlandığında hangi yetkilere (rollere) sahip olacağını, yani Veritabanı Rollerini belirliyoruz.
Kullanıcıyı birden fazla veritabanına da atayabilirsiniz ancak ben, örnek olarak FIRAT kullanıcısını DATABASE002 isimli veritabanına atadım.
Kullanıcım sadece atandığı veritabanı üzerinde, kullanıcı rolleri dahilinde işlem yapabilir.

Veritabanı Kullanıcı rolleri; veritabanına veri eklenmesi, silinmesi, veri okuma, veri yazma, nesne sahipliği, erişim ayarlamaları vb. konularda tanımlı rollerdir ve veritabanı seviyeli işlemler olduklarından, veritabanı kullanıcılarına verilebir.

Veritabanı Kullanıcı Rollerine bir göz atalım:

db_accessadmin: Veritabanı yöneticisi
db_backupoperator: Veritabanı Yedekleme Operatörü
db_datareader: Veritabanı Okuyucusu
db_datawriter: Veritabanı Veri Yazıcısı
db_ddladmin: Veritabanı DDL Yöneticisi
db_denydatareader: Veritabanı engelli veri okuyucu
db_owner: Vertabanı sahibi
db_security: veritabanı güvenlik yöneticisi

SQL Server Kullnıcı Oluşturma, Rol ve İzin Ataması Yapma

3) Server Seviyesinde Rol ve İzin Atamaları – Securables

Login Properties penceresinde Securables alanında kullanıcının SQL Server erişimi ile ilgili tüm güvenlik ayarlarını yapılandırabilirsiniz.

Örneğin, aşağıdaki ekran görüntüsünde de görüldüğü gibi, kullanıcıya sa (System Admin) tarafından Connect SQL yani SQL Server’a bağlanma yetkisi verilmiş. İhtiyacınıza göre diğer rol ve İzin Atamalarınında Grant seçeneği ile izin & rol ataması yapabilir, Deny seçeneği ile de izin & rol atamasını kısıtlayabilir, daha başka bir ifade ile rol yetkisi vermeyebilirsiniz.

SQL Server Kullnıcı Oluşturma, Rol ve İzin Ataması Yapma

Kullanıcımızı oluşturup gerekli rol ve izinleri de atadık. Faydalı olması dileğiyle.

3 Comments »

  1. sercan 03 Ocak 2017 at 16:40 - Reply

    yazmış oldugun bu makele için cok tesekkur ederım Fırat benim için cok verimli bir makele oldu bazı özelikleri ingilizce oldugu için sunucuda ezbere yapıyordum sen karşılarına türkcelerinide yazmışsın en azından şimdi daha bilinçli yapıcam emeğine sağlık

  2. hasan 10 Mart 2017 at 14:06 - Reply

    Elinize sağlık güzel bir çalışma

  3. Serkan Kara 06 Nisan 2017 at 18:25 - Reply

    Merhaba hocam bu bilginin nasıl yararlı olduğunu inanın bilemezsiniz. Çok teşekkürler iyi calismalar

Yorum Bırak »