Hangi firmanın olursa olsun hazırlanmış olan tüm yazılımlarda birinci öncelik güvenlik sorunudur.İnsanlar bile her şeyden önce kendi güvenliğini birinci planda tuttuğuna göre bilgisayar yazılım ortamlarında da sistemler internet üzerinden dünya’ya açık ortamlar haline geldiğinden ilk öncelik güvenlik oluyor.Hangi programı kullanırsanız kullanın eğer sisteminiz internete bağlı ise ,ki SQL Server ile mutlaka bu böyle olmak zorundadır.Çünkü SQL Server bir veri tabanı sistemi yani bilgilerinizin karşılıklı olarak gönderilip alındığı bir platformdur. Öyleyse ilk amaç bilgilerinizin veya verilerinizin karşı tarafa güvenli olarak iletmek olmaktadır.
Peki SQL Server’da güvenlik nasıl sağlanıyor?
SQL Server 2000'de güvenlik başta authentication (yetkilendirme/kimlik denetimi) düzenlemesi olmak üzere, SQL Server'a bağlanan ve veritabanlarına erişen kişilerin denetlenmesi işlemidir.
SQL Server'a erişen bir kullanıcı şu tanımlamalardan geçerek bir veritabanı nesnesine erişir:
Login account -> Database user -> Database nesneleri
Geçerli bir kullanıcı-> veritabanı kullanıcısı-> tablo ya da view
Login account (oturum açma adı), SQL Server'a erişecek geçerli bir kullanıcı adıdır. Bu kullanıcı adı iki şekilde oluşturulur:
· Windows 2000 kullanıcısı olmak.
· SQL Server'da tanımlı bir Login ID olmak.
Ardından login adı bir SQL Server veritabanı kullanıcı adıyla eşleştirilerek veritabanına ve veritabanı nesnesine erişim sağlanmış olur. Ardından izinler devreye girer. İzinler (permissions) kullanıcıların hangi database nesnelerini kullanacağını ve hangi işlemleri yapabileceğini belirtir.
A. VAROLAN SİSTEM YÖNETİCİSİNasıl Windows işletim sisteminde Administrator tanımlı yerleşik bir kullanıcı var, SQL Server'da da kuruluş sırasında yaratılan bu kullanıcı sistem yöneticisidir. SQL Server'a ve bütün database'lere erişim yetkisi vardır. Bu kullanıcının adı: sa dır.
Sistem yöneticisi: SA
B. KİMLİK DENETİMİ (AUTHENTİCATİON) TİPİNİN SEÇİLMESİSQL Server'a erişecek kullanıcıların (login'lerin) sisteme girişinde yapılacak kontrole authentication (kimlik denetimi) denir. SQL Server 2000'de Windows 2000 kimlik denetimi, Windows 2000 Authentication Mode ya da Mixed olarak düzenlenir.
· Windows 2000 kimlik denetimi
· Windows NT ve SQL Server Kimlik denetimi (Mixed)
Kimlik denetiminde iki modun (tipin) olmasının bir diğer anlamı da; SQL Server'ın kullanıcıları kendisinin denetlediği gibi Windows NT'nin denetimine de güvenmesidir.
Windows NT/2000 Kimlik Denetimi
SQL Server'a bağlanmak isteyen bir kullanıcı Windows NT kimlik denetimini kullandığında; bir Windows 2000 kullanıcısı ya da grubu SQL Server'a girebilir. Bu şekilde SQL Server'a giren kullanıcıya bir bağlantı yaratılır. Bu bağlantıya da trusted connection denilir. Ardından kullanıcının adı ve grubu SQL Server'a geçirilir.
Windows 2000 Authentication Mode'un Üstünlükleri
Windows NT Authentication Mode, Windows NT'nin kimlik denetiminden geçen kullanıcıların SQL Server'ı kullanmasına izin verir. Bu tipin kullanılmasının üstünlükleri şunlardır:
· Tek bir kullanıcı adını kullanarak daha kolay ve hızlı logon işlemi.
· Kullanıcı adı ve parola düzenlemesi olarak daha fazla seçeneğe sahiptir. Örneğin auditing, expiration, logon hours vb düzenlemeler.
Mixed Mode'un Üstünlükleri
Mixed modun kullanımını üstünlüklerinin başında non-Windows NT client'ların (Internet clients, vb) da SQL Server'a erişmelerinin sağlanmasıdır. Diğer bir üstünlük ise ikinci bir güvenlik katmanı olmasıdır.
Kimlik Denetimi Tipinin (Authentication Mode) Düzenlenmesi
Kimlik denetimi tipinin seçilmesi için şu işlemler yapılır:
Windows 2000 Authentication Mode'un seçilmesi:
1. SQL Server Enterprise Manager çalıştırılır.
2. Kimlik denetimi değiştirilecek server üzerinde sağ tuşa tıklanır Properties seçilir.
3. Security sekmesi seçilir.
4. Buradan istenilen düzenleme seçilir.
5. MSSQLServer servisi durdurulur ve yeniden başlatılır. Böylece seçilen kimlik denetimi tipi geçerli olur.
6. "Trusted connection " olarak SQL Server'a bağlanacak olan Windows NT kullanıcıları ve grupları yaratın.
7. Bu kullanıcı ve gruplara Enterprise Manager aracılığıyla SQL Server'da kullanabilecekleri izinler ver.
Mixed Authentication Mode'un seçilmesi:
1. SQL Server Enterprise Manager çalıştırılır.
2. Kimlik denetimi değiştirilecek server üzerinde sağ tuşa tıklanır Properties seçilir.
3. Security sekmesi seçilir.
4. Buradan istenilen düzenleme seçilir.
C. BİR SQL SERVER LOGİN'İ YARATMAK
Windows NT kullanıcısı ya da grubu üyesi olmayan kullanıcıların (non-trusted users) SQL Server'da tanımlanması için yine Enterprise Manager ya da sp_addlogin sistem stored procedure'ı kullanılır. Bu deyim de yine Administrator tarafından kullanılır.
1. Bir server grubu ve bir server açılır.
2. Security açılır.
3. Logins üzerinde sağ tuşa tıklanır ve New Login seçilir.
4. SQL Server logininin adı girilir.
5. SQL Server Authentication seçilir.
6. Bir parola (password) girilir.
7. Seçimlik olarak bir varsayım database ve dili girilir.
8. Girilen parola onaylanır.
D. ROLLER
Veritabanı rolleri, izinlerin uygulanacağı birçok kullanıcının bir araya getirilmesidir. SQL Server, server düzeyinde de database düzeyinde roller düzenlenebilir.
SQL Server, belli yönetim fonksiyonlarına sahip hazır-tanımlanmış birtakım rollere sahiptir. Bu roller kolayca bir kullanıcıya verilebilir. Bunun dışında özel (user-defined) roller de yaratılabilir.
Tanımlı (sabit) server rolleri yönetimsel düzeydeki izinlerin gruplanmasını sağlar. Bu roller kullanıcı database'leri üzerinde bağımsız olarak düzenlenebilir.
Tablo: Sık kullanılan sabit server rolleri
Rol İzni
Database yaratıcıları (dbcreator) Database yaratır ve değiştirir.
Disk yöneticileri (diskadmin) Disk dosyalarını düzenler.
Process yöneticileri (processadmin) SQL Server process'lerini yönetir.
Güvenlik yöneticileri (securityadmin) Sisteme giriş işlemini düzenler.
Server yöneticileri (serveradmin) Server düzeyindeki düzenlemeleri yapar.
Kuruluş yöneticileri (setupadmin) Replication işlemini kurar.
Sistem yöneticileri (sysadmin) Herhangi bir işlemi yapar.
Enterprise Manager aracılığıyla Server Rollerini görmek için Security bölümünden Server Roles seçilir.
Tanımlı (sabit) database rolleri database düzeyinde yönetimsel izinlerin gruplanmasını sağlar. Database rollerini görmek için Enterprise Manager içinde database seçilir.
Tablo: Sık kullanılan sabit database (Veritabanı) rolleri
Rol İzni
Public Bir database üzerindeki bütün varsayım izinleri sağlar.
db_owner Herhangi bir database rolü işlemini yapar.
db_accessadmin Database kullanıcısı, grubu ve rolü ekler.
db_dlladmin Database nesnesi ekler, değiştirir ya da düşürür.
db_securityadmin Deyim ve nesne izinleri düzenler.
db_backupoperator Database yedekleme ve geri yükleme.
db_datareader Herhangi bir tablodan data okur.
db_datawriter Tablolardaki dataları siler, değiştirir ve ekler.
db_denydatareader Herhangi bir tablodan data okuyamaz.
db_denydatawriter Herhangi bir tablodan data değiştiremez.
Tanımlı (sabit) rollerin dışında sistem yöneticileri kendi kullanıcıları için de roller düzenleyebilirler. Böylece bir grup kullanıcının izinlerinde toplu değişiklik yapılabileceği için yönetim fonksiyonu kolaylaşacaktır.
E. KULLANICI-TANIMLI BİR ROL YARATMAK
Kullanıcı tanımlı bir rol yaratmak için:
1. Bir server grubu ve bir server seçilir.
2. Databases grubu açılır ve içinde rol yaratılacak olan database açılır.
3. Roles üzerinde sağ tuşa tıklanır ve New Database Role seçilir.
4. Yeni rolün adı girilir.
5. Add düğmesine tıklanarak standart role üyeler eklenir.
Bir SQL Server database rolüne üye eklemek için:
1. Bir server grubu ve bir server seçilir.
2. Databases grubu seçilir. Ardından rolün olduğu database genişletilir.
3. Database Roles seçilir.
4. Rol üzerinde sağ tuşa tıklanır ve Properties seçilir.
5. User altında Add düğmesine tıklanır.
6. Eklenecek kullanıcı ya da kullanıcılar seçilir.