|  | 
        
            | 
                    
                        | SQL Server 2000 de Rol ve Kullanıcı  Hesabı İlişkilendirilmesi |  |  
                        | 
	
    
		
            | Gönderiliyor lütfen bekleyin... | 
 |  | 
        
            | Bu gunkü makalemizde SQL Server 2000 ile programlarımızda veri 
				güvenliği sağlama yollarından bir tanesini anlatacağım. Bazen programı 
				tasarlarken belli kullanıcıların sadece kayıt görüntüleyebilmesi, yeni 
				kayıt girebilmesi, var olan kaydı değiştirebilmesini yada sadece 
				kaydı silebilmesini isteyebilirisiniz. Bunu tür kısıtlamaları 
				veritabanında projemizdeki tablolara ek olarak bir kaç tablo ekyerek 
				yapabilirsiniz. Bu tablolardaki gerekli bilgileri almak için program içerisinde 
				oldukça sağlam bir kod yazarak bu işi yapabilirsiniz. Ama SQL Server 2000 
				bunu kod yazmadan gerekli bilgileri girerek yapabilmemizi sağlar.
			
			Bunu yapmanız için öncelikle programda ne tür kullanıcı 
				tipine ihtiyacınız olduğuna karar vermeniz gerekiyor. Hangi kullanıcı tipi 
				hangi görevleri yapmalı. Yani kullanıcılara proje içerisinde 
				rol vermelisiniz. SQL serverin kullanacağı kullanıcı hesaplarını ve 
				rollerini tanımlamak için SQL Enterprise Maneger da Roles ve Users 
				başlıklarını kullanacağız. Eğer tanımladığınız rolu sadece tek kullanıcının 
				yapmasınız istiyorsanız, kullanıcı hesaplarını teker teker Users başlığı 
				altında tanımlamanız gerekmektedir. Ama bir rolu birden fazla kullanıcı 
				yapacaksa hepsini tekere teker tanımlamaktansa NT Grupları oluşturmanız ve bu 
				gruba kullanıcı hesaplarını eklemeniz daha iyi olacaktır.
			
				Makalemizde kullanacağımız senaryo şöyle olsun. Üç farklı kullanıcı tipi yani 
				role tanımlayacağız. Roller şöyle olsun;
			1-) Tabloya yeni kayıt ekleme ve var olan kaydı 
				güncelleyebilme,
			
			2-) Tabloda kayıt silme,
			3-) Tabloda sadece kayıt görüntüleyebilme.
			Ve bu rolleri gerekli kullanıcı yada kullanıcı gruplarına 
				atayacağız. Böylece program içerisinde kullanıcı ona verilen görev dışına 
				çıkmaya kalkarsa SQL serverın vermiş olduğu hata mesajı ile karşılacaçaktır. 
				Ayrıca bu kullanıcılar dışından SQL servera erişen herhangi biri ilgili tabloya 
				erişmeye çalıştığında eğer hakkı yoksa işlem yapamayacatır. Böylece güvenliği 
				sadece program içerisinde değil dışarıdan gelen saldırılara karşıda korumuş 
				olacağız.
			İlk rolumuzu eklemeye başlayalım. SQL Enterprise Maneger 
				->> Roles ->> New Database Role… seçiyoruz. Açılan 
				Database Role Properties - New Role penceresinde Name alanına role adını 
				giriyoruz. Database role type seçeneğini default seçili gelen Standart 
				role değerini değiştirmiyoruz. Tanımlı kullanıcı hesapları (User) 
				olduğunda Add buttonu kullanarak ekleyebiliriz. Biz öncelikle rolleri sonra 
				kullanıcıları tanımlayacağımız için burdan eklemeyeceğiz. 
   Şekil 1 - SQL Server Rol tanım ekranı. Yeni role girişi
 Tanımlayacağımız roller rl_VeriGirisi, 
				rl_VeriSilme,rl_VeriGoruntuleme olacaktır. Tanımladığımız rolu  tekrar 
				açtıktan sonra aktive olan Hakklar (Permissions) buttonu seçip ilgili rolun 
				hangi tablo, view, stored procedure yada fonksiyona hakklarını veriyoruz.
  Şekil 2 - SQl Server rol properties 
						penceresi. Roller  ile ilgili hakkların tanımlandığı ekran.
			rl_VeriGirisi rolune 
				Customer tablosunda insert ve update hakkı verdik. Ve silme hakkını elinden 
				aldık. Hakklar (Permissions) penceresindeki listede bulunan diğer terimleri 
				inceleyelim. 
			Object : Veritabanında bulunan objeler. Tablolar, viewlar, 
				saklı yordamlar(stored procedur) ve fonksiyonlardır.
			Owner : İlgili objeyi oluşturan kullanıcının hesabının adı.
			SELECT : Sadece veri seçebilir.
			INSERT : Sadece yeni kayıt girebilir.
			UPDATE : Sadece var olan kaydı güncelleyebilir.
			DELETE : Sadece kayıt silebilir.
			EXEC : Sadece ilgili objeyi çalıştırabilir.Çalıştırma 
				işlemi saklı yordamlar (stored procedurler) ve fonksiyonlar (functions) için 
				geçerlidir.  Hak ver.  : Hakkı kaldır.
			Ayrıca listede seçmiş olduğumuz obje bir tablo veya view ise 
				Columns buttonunu seçerek kısıtlama veya yetkilendirmeyi objedeki alan 
				adına kadar indirgeyebilirsiniz.
			Rollerimizi tanımladıktan sonra kullanıcılarımızı 
				tanımlayalım. SQL Enterprise Meneger ->> Users ->> New 
				Database User seçeneği seçilim. Açılan Database User Properties-New User 
				penceresinde Login Name listesinde ilgili kullanı hesabı var ise seçip 
				database role membership listesinde tanımladığımız rolu ekliyelim. Eğer 
				kullanıcımız listede yoksa listedeki <new> seçeneğini seçelim. SQL Server 
				bu imkanları sunarken oldukça bol bencereli bir yol vermiştir. Sakın sıkılıp 
				bırakmayın. Çünkü bu işlemi genellikle bir kere yapacaksınız. Açılan SQL 
				Server Login Properties-New Login penceresinde  Name alanına kullanıcıyı 
				adınız yazalım. Tamam buttonundan sonra ilgili kullanıcı bulunmadı diye SQL 
				serverin vermiş olduğu hata mesajı ile karşılaşırsanız. Sağdaki buttonu 
				seçiniz.  Şekil 3 -SQL 
						server Login  Properties penceresi. Kullanıcı adının yazılıp kontrol 
						edilemsi.
			Açılan yeni pencerede de ilgili alan adına (domain) ait 
				kullanıcı hesaplarının listesi bulunmaktadır.  Şekil 4 -Seçili 
						Windows NT alan adının altında bulunan kullanıcı hesaplarının listesi.
			Eğer aradığınız 
				kullanıcı hesap adı bu listede de bulunmuyorsa Ara buttonu seçiniz. Karşımıza 
				kullanıcı hesaplarını ayrıntılı bir şekilde aramak için açılacak olan Hesap Bul 
				penceresi çıkacaktır.  Şekil 5 - Hesap 
						bulma penceresi. Ayrıntılı kullanıcı hesabı aramak için kullanılır.
			Bu ekranda aradığını 
				kullanıcı hesabını girin ve Ara buttonunu seçin. Aradığınız kullanıcıyı hala 
				bulamıyorsanız ilgili kullanıcı yok yada hesap adını yanlıştır. Açılan bütün 
				pencereleri başarıyla geçtikten sonra kullanıcımızı tanımlamış olduk. Bol 
				engelli bir yapısı var ama bu yapıyı iyi öğrendikten sonra hem Window NT nin 
				kendi altyapısını hemde bu alt yapıyı kullanan SQL Server 2000 ni iyi tanımış 
				olacağız.  Şekil 6 - Kullanıcı 
						hesabına (user) rollerin atanması.
			Yukarıda da söylediğim gibi bol pencereli ve karışık 
				gözükebilir. Ama bu alt yapıyı kullanarak veri güvenliğini ve kullanıcı görev 
				tanımını iyi yapalirsiniz. Tek bir yerden SQL Server Enterprise Menegerdan 
				yönetme gibi bir avantaja sahip olabilirsiniz. Ayrıca bunu yaparken hiç kod 
				yazmanıza gerek kalmayacaktır. Bir sonraki makalede görüşmek üzere. 
                Makale:SQL Server 2000 de Rol ve Kullanıcı  Hesabı İlişkilendirilmesi ADO.NET ve SQL Feryat Olcay
 | 
        
            |  | 
        
            |  | 
        
            | 
                    
                        
                            
                        
                            Eklenen Son 10 
                            Bu Konuda Geçmiş 10 
                        
                            Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
                         
                            Son Eklenen 10 Makale Yükleniyor
                         
                            Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
                         | 
        
            |  |