Login ve User

SQL Server Security

SQL Server a giriş yapmak için (login) iki yöntem vardır. Windows kimlik denetimi(Windows authentication) ve SQL kimlik denetimi (SQL authentication).

Windows kimlik denetimi her zaman vardır, fakat SQL kimlik denetimi mixed mode seçilerek etkin hale getirilir.

SQL Server ı ofis binası gibi düşünün. Binaya girşi için bir anahtara ihtiyacımız vardır. Fakat anahtar iş hanındaki kendi büromuzuda açmalıdır. Ali eczacıda çalışıyor, Ayşe kuaförde çalışıyor. İş hanına giriş için ikisindede aynı anahtar olmalı. Ardından çalıştıkları yerlere girmek için Ali de eczacının anahtarı, Ayşe de kuaförün anahtarı olmalıdır.

SQL Serverda bu örnek gibi 2 adımlı güvenlik sağlar. İş hanının anahtarı login güvenliğidir. İş hanındaki herbir büro SQL Serverdaki veritabanı gibidir. Her büronun kendine has anahtarı olduğu gibi, her bir veritabanınında bir kullanıcısı (user) olmalıdır. Her bir user server a erişmek için login ile ilişkilendirilmelidir.

Windows kimlik denetimi

Bu doğrulama biçimi SQL Server a bir login gibi giriş yapmak için kullanılır. Windows kullanıcı hesabı kullanılarak oturum açılır.

SQL kimlik denetimi

Bu doğrulama biçiminde kullanıcı adı ve şifre SQL Server da saklanır. Kullanıcı adı ve şifre master veritabanında syslogins tablosunda saklanır. Şifre hash yöntemi ile şifrelenerek saklanır. Şifrelenen şifre çözümlenemez.

select * from syslogins
bu cümlecikle oluşturulan kullanıcın bilgileri görüntülenir. Şifre kısmının hash yöntemi ile şifrelendiğine dikkat ediniz.

Kullanıcı adı ve şifre girildiğinde önce kullanıcı adı kontrol edilir, kullanıcı adı varsa o kullanıcı adının şifresi girilen şifre ile kontrol edilir. Girilen bilgiler doğru ise server a erişilir.

Login Oluşturma

1. Management Studio kullanılarak login oluşturma

Windows Authentication için login oluşturma

  1. View-Object Explorer açılır. Ekrana gelen pencereden (sol kısımdaki) login oluşturulacak server seçilir
  2. Security klasörüne sağ tıklanarak New-Login seçilir
  3. General sekmesine geçilerek Login name kutusuna Windows kullanıcısı yazılır.
  4. Windows Authentication seçilerek Tamam düğmesine tıklanır.

SQL Server Authentication için login oluşturma

  1. Security klasörüne sağ tıklanarak New-Login seçilir
  2. General sekmesine geçilerek Login name kutusuna yeni login adı yazılır.
  3. SQL Server Authentication seçilir .
  4. Login için şifre girilir. Şifre büyük-küçük harfe duyarlıdır.
  5. Şifre seçeneklerinden istenilen seçilir. Enforcing password policy seçeneğinin seçili olması güvenlik açısından önemlidir.
  6. Tamam düğmesine tıklanır.

2. Transact-SQL (T-SQL) kullanılarak login oluşturma

  • Windows Authentication için login oluşturma
  • CREATE LOGIN kullanicininadi FROM WINDOWS
    GO
  • SQL Server Authentication için login oluşturma
  • CREATE LOGIN loginadi WITH PASSWORD = 'şifre'
    GO

Varsayılan login isimleri

Varsayılan olarak iki tane login ismi bulunur. Bu login isimleri sistem yöneticisidir ve bütün veritabanlarında her izne sahip isimlerdir.

  • sa (system administrator)
  • BUILTIN/Administrator

sa her sql serverda bulunan login ismidir. sa kullanıcı adı her sql server da olduğu için, Sql Server'ı hacklemek isteyenlere karşı sa ya belirlenen şifrenin tahmin edilmesi zor olacak bir şifre olmalıdır. Bu şifrenin belli aralıklarla değiştirilmesi güvenlik açısından önemlidir. Diğer bir yöntem ise sa hesabını pasif yaparak, sa yetkisinde başka bir login ismi altında yeni bir login oluşturmaktır. Yeni oluşturulacak olan logine server rollerinden olan sysadmin rolü eklenmelidir.

Veritabanı için Kullanıcı Oluşturma

Management Studio kullanılarak kullanıcı oluşturmak. Kullanıcı oluşturma sadece SQL Server Authentication için oluşturulur. Windows Authentication için oluşturulamaz.

  1. Databases klasörü genişletirlir.
  2. Kullanıcı oluşturulacak veritabanına ait klasör genişletilir.
  3. Security klasörüne sağ tıklanarak New-User seçilir.
  4. General sayfasından User Name kısmına kullanıcı adı yazılır.
  5. Login name kısmına SQL Servera giriş yapacak login ismi yazılır.
  6. Tamam Düğmesine tıklanır.

Transact-SQL (T-SQL) kullanılarak kullanıcı oluşturma

use veritabanıadi --veritabanı seçilir
CREATE USER yenikullaniciadi FOR LOGIN loginadi
GO

Varsayılan Kullanıcı Hesapları

Varsayılan olarak 2 tane kullanıcı adı bulunur. dbo ve guest hesabıdır.

dbo Hesabı

dbo hesabı login adı olarak sa yı rol olaraksa sysadmini kullanır. dbo kullnıcısı silinemez

Guest Hesabı

Guest her veritabanında otomatik oluşturulan hesaptır. Sisteme login ve kullanıcı adıyla herhangi bir veritabanına giriş yapan kullanıcı, guest hesabı açık olan tüm veritabanlarına erişebilir. Bu yüzden güvenlik gereği guest hesabının pasif yapılması gerekir.

Guest hesabını aktif yapmak için
GRANT CONNECT TO guest
cümleciği kullanılır.

Guest hesabını pasif yapmak için
DENY CONNECT TO guest
cümleciği kullanılır.

Telefon +90 505 747 42 84
Email info@devedijital.com
Adres
Tacettin Veli Mahallesi Halit Narin Caddesi Bahadır Plaza Kat:11 Daire:41 38230 Deve Dijital Melikgazi/Kayseri/Türkiye