Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




C#nedir?com
 
YAZAR HAKKINDA
Feryat Olcay
Feryat Olcay
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
15 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: bulunan buttonu database enterprise gerekli hesaplarini ilgili kullanici listede penceresi. program properties server serverin yapiyi ADO.NET/SQL Feryat Olcay
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : İleri
Kategori : ADO.NET/SQL
Yayınlanma Tarihi : 14.6.2006
Okunma Sayısı : 41147
Yorum Sayısı : 0     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 23.11.2024
Turhal Temizer
Mac OS/X Removing CUDA 23.11.2024
Burak Selim Şenyurt
Rust ile ECS Yaklaşımını Anlamak 23.11.2024
Burak Selim Şenyurt
Birlikte Rust Öğrenelim Serisi 23.11.2024
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
SQL Server 2000 de Rol ve Kullanıcı Hesabı İlişkilendirilmesi
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
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
  • Yazılan Yorumlar
  • Yorum Yaz
Bu konu hakkında yayınlanan yorum bulunmamaktadır.
"Yorum Yaz" tabını kullanarak sizde yorumlarınızı yazabilirsiniz.
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • 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