Kimlik Doğrulama, SQL Server Kullanıcı Hesapları, SA Hesabı, SQL Server Rolleri
Kimlik Doğrulama
Sql Server ile clientlar arasında iki çeşit kimlik doğrulama yöntemi vardır.
Windows Authentication ve Sql Server Authentication.
Sql Server kurulumunda hangi yöntem ile kimlik doğrulama yapacağınız size sorulur.
“Windows Authentication mode” Sadece Windows hesaplarından açılan oturumları kabul eder.
“Sql Server and Windows Authentication mode” Hem Windows hem de Sql Server hesaplarından
açılan oturumları kabul eder.
Server Authentication kısmında yaptığınız kimlik doğrulama yöntemlerinden sonra Sql
Server servisinin yeniden başlatılması gerekmektedir.
Windows Authentication varsayılan olarak Sql Server kurulumunda seçili olarak gelmektedir.
Öngörülen ve daha güvenli olan kimlik doğrulama seçeneğidir. Kullanıcı Sql Server’a
kullanıcı adı ve şifre girmeden, Windows hesabı ile bağlanabilmektedir.
Windows Authentication devre dışı bırakılamaz.
Sql Server Authentication’ı dışarıdan erişecek ve domain yapınızın dışından erişecek
kullanıcılar için açabilirsiniz. Sql Server hesapları, Sql Server’ın içinden yönetilir,
Windows hesapları ile bir bağlantısı yoktur.
SQL Server Kullanıcı Hesapları
Sql Server’daki kullanıcıların hesaplarına Logins denmektedir. Her bir login’e ayrı yetkiler
verilebilir, erişebileceği veri tabanları belirlenebilir. Sql Server’da güvenlik seviyesi iki
katmandan oluşur Server ve Veritabanı seviyesi. Login hesabı ilk önce server seviyesi oluşturulur,
daha sonra ilgili veri tabanına mapped denilen ataması yapılır ve veri tabanına erişimi sağlanmış olur.
Sql Server üzerinde kullanıcı – login açmak için SS Management Studio – Security – Logins üzerinde
sağ click “New Login” diyoruz.
Windows Authentication ile domain kullanıcısına Sql Server için yetki verilebilir.
Search kısmından yetki verilmek istenen kullanıcı seçilebilir.
Sql Server Authentication seçildiğinde kullanıcı adını yazabilirsiniz.
Sql Server’ın yönettiği hesaplar olduğu için Windows hesaplarından farklı olacaktır.
“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.
Enforce password policy ve pasword expiration seçeneklerinin Sql logini için seçilmesi,
basit şifrelerin kullanılmasının önüne geçeceği gibi, uzun süre değiştirilmeyen
şifreler içinde tedbir olacaktır.
Bir Sql hesabını silince, bu hesabın tüm ayarları kaybolur, tekrar bu hesabı
oluşturduğunuzda tüm tanımları yeniden yapmanız gerekmektedir. Bu sebeple, hesabın
Sql Server’a erişimimi kapatarak, hesabı silmeden kullanıcının Sql Server’a erişimini
engelleyebilirsiniz.
Bu ayarları kullanıcının Properties sayfasındaki Status sekmesinden de yapabilirsiniz.
“Permission to connect database engine” – Kullanıcının Sql Server’a bağlanmasına izin/engel vermesi.
“Login” – Kullanıcı hesabının devre dışı/aktif edilmesi.
“Sql Server Authentication – Login is locked out” – Kilitlenen Sql Server hesabı buradan açılabilir.
Kullanıcı hesaplarının güvenlik ile alakalı kısımlarından bahsettik.
Login – Properties’in diğer sekmeleri olan Server Roles, User Mapping ve Securables
bölümleri kullanıcının Sql Server içindeki erişim izinleri ile alakalıdır.
SA HESABI
/* Sa kullanıcısı ilk Sql Server çıktığından beri olan, System Administrator anlamına gelen, Sql Server’ın sistem yöneticisi hesabıdır. Eski Sql Server sürümlerinde devre dışı bırakılması mümkün değildi. Sql Server 2005 ile birlikte devre dışı bırakılması ve değiştirilmesi sağlandı. Sa hesabını neden kapamalıyız veya neden kısıtlamalıyız, çünkü en çok saldırı alan Sql Server hesabıdır. Saldırganlar tarafından ilk önce kontrol edilen hesaptır, sa hesabında sistem yöneticiliği rolü olduğundan ilk önce bu hesap yoklanır. Birçok firmada sa hesapları aktif haldedir. Ne yazık ki kobi dediğimiz küçük ve orta boy ölçekteki bir çok firmada ise durum daha vahimdir. Bazı firmalarda halen sa hesabı aktif olup şifreside yoktur. Firma sahipleri etkili bir atak yedikten sonra, verileri çalınıp şifrelendikten sonra tedbir almaya başlarlar. Sa hesabını aşağıdaki komutla devre dışı bırakıyoruz. */ ALTER LOGIN [sa] DISABLE -- Sa hesabının adını aşağıdaki komut ile değiştirebilirsiniz. ALTER LOGIN [sa] WITH NAME = [test_kullanici] -- Sa hesabının Securtiy ID’si (SID) 1 olduğundan daha aşağıdaki sorgu ile sa hesabının -- adını öğrenebilirsiniz. SELECT * FROM sys.sql_logins WHERE principal_id = 1 -- Sa hesabını SSMS üzerinden devre dışı bırakmak için. -- SSMS – Security – Logins Sa hesabına sağ tıklayıp özelliklerine giriyoruz. -- Status sekmesinden database engine için Deny, SSMS erişimi içinde Login Disable yapıyoruz. /* Sql Server kurulumunda Windows Authentication seçeneği seçilerek kurulum yapıldı ise, sa devre dışı kalır. Sa şifresini hatırlamanıza gerek yoktur. Olabildiğince zor bir şifre koyarak sa hesabının adını değiştirmek gerekmektedir. */
SQL Server Rolleri
Bir Sql Server hesabı varsayılan olarak hiçbir yönetici yetkisi olmadan oluşturulur.
Bu role public rolü denir. Daha sonra hangi veritabanına erişmek istiyor ise
Logins – Properties – User Mapping sekmesinden veritabanı yetkileri atanır.
Eğer bir kullanıcıya yönetici yetkileri vermek istiyorsanız, Login’nin server roles
sekmesinden gerekli rolü verebilirsiniz.
Sql Server’da roller aşağıdaki gibidir;
– Bulk Admin: Bulk insert yapma yetkisine sahiptir. Bir dosyadan veritabanına kayıt
eklemek için kullanılır. Genellikle excelden veri çekmek için kullanılmaktadır.
– Dbcreator: Herhangi bir veritabanını oluşturma, düzenleme ve kaldırma yetkisi vardır.
Yazılımcılara test amaçlı bu yetkiden verilebilir.
– Processadmin: Sql proseslerini görme ve sonlandırma yetkisi vardır. Tüm çalışan
prosesleri görebilirler. Kill komutu ile istenen proses veya prosesleri sonlandırabilirler.
– Securityadmin: Sql hesabı oluşturup silebilirler. Server rolü oluşturma yetkileri yoktur.
– Serveradmin: Sql server instance’ının özelliklerini değiştirebilir, yeniden başlatabilir
veya hizmeti durdurabilirler.
– Setupadmin: Linked server oluşturma yetkileri vardır.
– Sysadmin: Tüm yönetici yetkilerine sahip roldür.