|
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
|
|