İçerikleri sosyal medya üzerinden paylaşarak daha fazla kişiye ulaşmasına yardımcı olabilirsiniz.



Kategori: MS SQL Server
Fırat Boyan 10.07.2016 7

SQL Server 2014'te Kullnıcı Oluşturma, Rol ve İzin Ataması İşlemleri

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 (veri tabanı) bazlı kullanıcı izinlerinin nasıl verilirdiğinden bahsediyor olacağım.

SQL Server Yeni Kullanıcı (User) Ekleme

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.
Öncelikle SQL Server yeni kullanıcı (User) ekleme işlemini gerçekleştirelim. 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 Windows Authentication ve SQL Server Authentication olmak üzere 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 ayrıca, 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. Windows authentication, sadece Windows hesaplarından & Active Directory Domain hesaplarından açılan oturumları kabul edeceği için;

● SQL Server sunusu 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

3.2- SQL Server authentication: SQL Server Authentication ile ilgili bilinmesi gereken çok önemli bir nokta vardır o da; 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 veri tabanı 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 vermeryecek 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

SQL Server Kullanıcı Rol ve İzin Atamaları

Sql Server’da güvenlik seviyesi iki katmandan oluşur. Bunlar, Server ve Database seviyeleridir.

1) SQL Server Rolleri - Server Roles

Login Properties penceresinde Server Roles alanında kullanıcının veri tabanı 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ığı veri tabanında yürüteceği SQL Server yönetimsel rolleri, yani Server Rollerini belirler. 

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

SQL SERVER Yönetimsel Roller:
bulkadmin (Bulk Insert Administrator): 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): veri tabanı oluşturucusu. veri tabanı oluşturulması ve değiştirilmesi işlemlerini yönetir.
NOT: Bu role sahip olan kullanıcı, herhangi bir veri tabanı oluşturabilir, silebilir veya düzenleyebilir. Yazılımcılara test amaçlı bu yetki verilebilir.

diskadmin (Disk Administrator): Disk yöneticisi. veri tabanı 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) SQL Server Database & veri tabanı 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 veri tabanı atıyoruz ve kullanıcının atandığı veri tabanına bağlandığında hangi yetkilere (rollere) sahip olacağını, yani veri tabanı rollerini belirliyoruz.
Kullanıcıyı birden fazla veri tabanına da atayabilirsiniz ancak ben, örnek olarak FIRAT kullanıcısını Database002 isimli veri tabanına atadım.

NOT: Kullanıcım, sadece atandığı veri tabanı üzerinde, SQL Server Kullanıcı rolleri dahilinde işlem yapabilir. Başka bir Database'e (veri tabanı) erişmesi mümkün olMAyacaktır.

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

SQL SERVER Database (veri tabanı) USer (Kullanıcı) Rolleri:
db_accessadmin: veri tabanı yöneticisi
db_backupoperator: veri tabanı Yedekleme Operatörü
db_datareader: veri tabanı Okuyucusu
db_datawriter: veri tabanı Veri Yazıcısı
db_ddladmin: veri tabanı DDL Yöneticisi
db_denydatareader: veri tabanı engelli veri okuyucu
db_owner: Vertabanı sahibi
db_security: veri tabanı güvenlik yöneticisi

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

3) SQL Server 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.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...


Her türlü görüş ve önerilerinizi aşağıdaki yorum panelinden bırakabilir, kafanıza takılanları veya merak ettiklerinizi sorabilirsiniz.



Yazar Hakkında

firatboyan.com


1985 yılında Alanya'da doğdum. İlk, orta ve lise öğrenimimi Alanya'da tamamladım. Liseden mezun olduktan sonra Akdeniz Üniversitesi Bilgisayar Teknolojisi Ön Lisans programına yerleştim ve bu programdan mezun oldum. Ön Lisans programından mezun olduktan bir süre sonra Dikey Geçiş Sınavı (DGS) ile İstanbul Teknik Üniversitesi (İTÜ) Bilgisayar Mühendisliği Lisans programına yerleştim. 2003 yılından beri Bilgi Teknolojileri sektöründe Sistem ve Network alanlarında çalışıyorum. Bir çok firma bünyesinde farklı projelerde yer alarak bu alanda yıllar içinde ciddi bir bilgi birikimi ve deneyimler kazandım. Bilgi Teknolojileri sektöründeki profesyonel çalışma hayatımın uzunca bir dönemini entegratör firma bazında, ağılıklı olarak Microsoft ürünleri üzerine danışman olarak sürdürüyor ve yüksek seviyeli projeler geliştiriyorum. Uzunca bir süredir de Türkiye'nin en önde gelen entegratör firması olan Data Market bünyesinde Senior Cloud Engineer olarak çalışıyorum. Ek olarak, 2015 yılında Network Akademi bünyesinde Sistem ve Network Uzmanlık eğitimleri vermeye başladım ve 2017 yılında da eğitmenlik tecrübemi, Microsft Certified Trainer (MCT) ünvanı ile taçlandırdım. Eğitmenlik serüvenime 2021 yılından beri Bilge Adam bünyesinde MCT ünvanı ile devam etmekteyim.

YORUMLAR
Bu makaleye 7 yorum yapıldı.
Her türlü görüş ve önerilerinizi aşağıdaki yorum panelinden bırakabilir, kafanıza takılanları veya merak ettiklerinizi sorabilirsiniz.


750 karakter yazabilirsiniz.
Captcha
Güvenlik kodunu BÜYÜK harflerle giriniz.
* Yorumlar, onaylandıktan sonra yayınlanmaktadır.
* E-posta, yorum onay bildirimi için gereklidir. Yayınlanmaz.


26.07.2021 Kanber Topçu
Güzel ayrıntılı bir doküman olmuş, emeğinize sağlık..
24.06.2021 Senem Akgün
Partition bazlı yetkilendirme? Partition bazlı user permission verilebiliyor mu? Partition bazlı kullanıcı yetkilendirme yapılabiliyor mu? Tablo bazında değil partition bazında yetkilendirmeyi ms sqlde yapabiliyor muyuz? 1 tabloyu 5 partitiondan oluşacak şekilde yapıp sonrasında bu partitionlara farklı farklı user privilegelar tanımlayabiliyor muyuz?
21.12.2018 Aykut Pehlivan
Gerçekten çok ayrıntılı olmuş. Emek verilerek hazırlandığı ortada. Elinize sağlık.
17.12.2018 hakki Parlak
Merhaba, Bir serverda birden fazla datam var. Her hangi bir data da kullanıcaya sadece view oluşturma yetkisi nasıl veririm. Ayrıca tüm datalarda sadece view yetkisi nasıl verebilirim .. Saygılar
27.02.2018 erhan kilci
Merhaba server 2012 kurulu sql i durdurup muhasebe programının dosyasının yedeğini alıp sql i tekrar çalıştıracak bir rol nasıl yapabiliriz? Bu işlem her gün tekrarlanacak. Saygılarımla

04.05.2018 aydın aktürk
database rollerinden db_backupoperator rolünü vermeniz yeterli.


14.02.2018 Güven Altun
Merhaba, açıklayıcı bir içerik olmuş, elinize sağlık.