SQL SERVER AUTHENTICATION
SQL Server, iki kimlik doğrulama modunu destekler: Windows kimlik doğrulama modu ve karma mod. Windows kimlik doğrulaması varsayılandır ve genellikle entegre güvenlik olarak anılır çünkü bu SQL Server güvenlik modeli Windows ile sıkı bir şekilde tümleştirilmiştir. … Kullanıcı adı ve parola çiftleri SQL Server içinde korunur.
Authentication işlemi istemci-sunucu arasındaki bağlantıda bağlanmak isteyenin yetkili olup olmamasını kontrol eder. Bu işlem 2 şekilde gerçekleşiyor.
1-Windows Authentication
Windows kimlik doğrulaması, bağlanan bilgisayarın Windows işletim sistemi (OS) tarafından sağlanan kimlik bilgileriyle bir oturumu tanımlama yöntemidir.
Windows kimlik doğrulamalı oturum açmalar varsayılandır ve bu nedenle SQL Server veritabanları için önerilen kullanıcı türüdür. Varsayılan olarak, SQL Server örneğiniz oluşturulduğunda, bu izin verilen tek oturum açma türüdür.
Windows kimlik doğrulaması, hesabın Etki Alanı için Active Directory’de bulunduğu anlamına gelir. SQL Server, hesabın etkin olup olmadığını, parolanın çalışıp çalışmadığını görmek için AD’yi kontrol eder ve ardından bu hesabı kullanırken tek SQL sunucusu örneğine hangi düzeyde izin verildiğini kontrol eder. Bu, hesap ve parolanın yalnızca bir kez tanımlanması gerektiğinden hesap yönetimine yardımcı olur.
Diğer bir kullanışlı özellik, AD’de tanımlanan bir grubu kullanarak bir SQL Server örneğine erişim verebilmenizdir. Örneğin, bir DBA ekibiniz var. Bireysel hesaplar oluşturmak ve bireysel hesaba izinler vermek zorunda kalmak yerine, SQL Server’daki AD Grubuna erişim verebilirsiniz ve AD hesabı AD grubunda bulunduğu sürece SQL Server’a izin verilecektir. Birisi bu şirketten ayrılırsa, bu kimlik AD Grubundan kaldırılabilir ve bu kullanıcının artık sunucuya erişimi olmaz. Bireysel olarak verilen hesapları kaldırmak için fazladan adım yok.
Server name kısmına kullanıcı adı olarak şunlar yazılabilir:
· bilgisayar adı
· nokta(.)
· parantez içerisinde local(LOCAL)
2-SQL Server Authentication
SQL Sunucusu Kimlik Doğrulaması, hesabın SQL sunucusu ana veritabanında bulunduğu ancak Etki Alanında hiçbir yerde bulunmadığı anlamına gelir. Kullanıcı adı ve şifre ana veri tabanında saklanır. Bu hesabın 1'den fazla SQL Server örneğine erişmesi gerekiyorsa, her örnekte oluşturulması gerekir. Parolanın değiştirilmesi gerekiyorsa, hepsini senkronize tutmak için her bir örnekte ayrı ayrı değiştirilmesi gerekir. SQL Server Kimlik Doğrulamasını kullanmak, parola karmaşıklığı ve parolanın sona ermesi söz konusu olduğunda Etki Alanı Güvenliği ilkelerini geçersiz kılma yeteneği sağlar. Ancak bu, veritabanınızda yükseltilmiş ayrıcalıklara sahip daha az güvenli hesaplara yol açabilir.
SQL Server Kimlik Doğrulaması, oluşturulan hesabı ve parolayı yönetir. Bu bilgiler Ana Veritabanında saklanır.
Bir hesap hem SQL hem de Windows Kimlik Doğrulaması kullanamaz.
Hangi kimlik doğrulama yönteminin kullanılacağına oluşturma sırasında karar verilmesi gerekir. Karar verildikten sonra hesap AD’de veya SQL Server’da oluşturulur.
Windows hesabıyla aynı ada sahip bir SQL Server hesabı oluşturabilirsiniz, ancak bu önerilmez. Hangi hesabın hangi zamanda kullanıldığı konusundaki karışıklığa katkıda bulunur ve hesap yönetimini karmaşık hale getirebilir.
Bir hesabın kimlik doğrulama yöntemini değiştiremezsiniz.
IP ile bağlanma
Network üzerinden bir makineye bağlanmak istediğimizde Server name kısmına yazmış olduğumuz ip ile bağlanmayı dener isek:
Kurmuş olduğumuz sql server’a network üzerinden bağlanamıyorsak:
1-Windows firewall dan kaynaklanıyor olabilir.
2-Makinede antivirüs programı kurulu olabilir, 1433 portundan herhangi bir saldırı geliyor olarak algılayabilir ve engelleyebilir.
3-Configuration manager üzerindeki ayarları değiştirmek gerekebilir.
Named Pipes ve TCP/IP disable olduğu için bağlanamayız. Bu yüzden enable hale getirmeliyiz.(SQL Servisini restart etmek gerekir.)SQL Server Configuration manager kısmından, hizmetler sekmesinden veya cmd ekranından restart edebiliriz.
CMD ile restart için önce durduruyoruz, sonra başlatıyoruz.
-net stop mssqlserver
-net start mssqlserver
Windows kimlik doğrulaması ve SQL Server kimlik doğrulamasının avantajlarından bahsedecek olursak:
Windows kimlik doğrulamasının avantajları
Windows kimlik doğrulaması, SQL Server’daki veritabanı kimlik doğrulamasına göre bazı avantajlar sunar. Bu avantajlar aşağıdaki gibidir:
- Windows kimlik doğrulaması, sertifika tabanlı bir güvenlik mekanizması kullandığından SQL Server veritabanlarında genellikle veritabanı kimlik doğrulamasından daha güvenlidir. Windows kimlik doğrulamalı oturumlar, SQL Server’a bir ad ve parola yerine bir erişim belirteci iletir. Erişim belirteci, kullanıcı oturum açtığında Windows (Active Directory Etki Alanı veya yerel işletim sistemi) tarafından atanır. Bu kullanıcı için benzersiz bir güvenlik kimliği (SID) ve kullanıcının ait olduğu yerel veya etki alanı Windows gruplarının SID’lerini içerir. Bu belirtecin SID’leri, sys.server_principals sistem görünümündeki tüm SID’lerle karşılaştırılır. Bu karşılaştırmanın sonuçlarına göre, oturum açma işlemine SQL Server erişimi verilir veya reddedilir.
- Etki alanı hesaplarını kullanırken, parolaların ve hesapların yönetimi merkezileştirilir; etki alanı yöneticisi kuruluş genelinde kullanılan tüm oturum açma bilgilerini yönetir ve veritabanı yöneticisinin ayrı hesapları yönetmesine gerek yoktur.
- Kullanıcı veritabanına bağlandığında, kullanıcının bir kullanıcı adı ve şifre girmesi gerekmez. Oturum açma sırasında tek oturum açma, Windows kimlik doğrulamasını destekleyen tüm hizmetlere erişim sağlar.
- Belirli bir kullanıcının ne yaptığını izlemek istiyorsanız, Windows kimlik doğrulamasını kullanmak mantıklıdır.
SQL Server kimlik doğrulamasının avantajları
Bu avantajlar aşağıdaki gibidir:
· Farklı kullanıcıların farklı veritabanlarına erişimi olması gereken paylaşılan sunucularda, SQL kimlik doğrulaması kullanılmalıdır.
· Bir istemci (uzak bilgisayar), istemcinin çalıştığı bilgisayardan başka bir bilgisayardaki bir SQL Server örneğine bağlandığında, SQL Server kimlik doğrulaması gerekir. Herhangi bir SQL Server kullanıcı hesabı tanımlamasanız bile, kurulum sırasında sağladığınız parolayla bir kök hesap (sa) eklenir.
Güvenlik Açısından Farkları
· SQL seçeneğini kullanmanın en büyük güvenlik sorunu, kullanıcıya yalnızca ihtiyaç duydukları mutlak gerekli izinleri vermek ve daha fazlasını vermemek olan en az ayrıcalık (POLP) ilkesini ihlal etmesidir. Sa hesabını kullanarak ciddi güvenlik açıkları ortaya koyarsınız. POLP ihlal edilir, çünkü uygulama sa hesabını kullandığında tüm veritabanı sunucusuna erişime sahiptir. Öte yandan Windows kimlik doğrulaması, yalnızca sunucudaki bir veritabanına erişim izni vererek POLP’yi izler.
· Windows authentication da şifreler için hash kullanılırken, SQL yöntemi ‘parola değiştirme veya şifrelemeyi zorlamaz, bunun yerine ağ üzerinden açık metin olarak gönderilir.
Özet olarak Windows kimlik doğrulamasının sağladığı, parola ilkeleri ve POLP’yi takip eden güvenlik avantajları göz önüne alındığında, SQL kimlik doğrulamasına göre çok daha iyi bir seçimdir. Bu nedenle, Windows kimlik doğrulama seçeneğinin kullanılması şiddetle tavsiye edilir.
SQL Server Authentication, IP ile bağlanma ve Windows kimlik doğrulaması ve SQL Server kimlik doğrulamasının avantajlarından bahsetmeye çalıştım, bir sonraki yazıda görüşmek üzere :)