wampserver 2.0
->
g羹癟l羹 ve kolay kullan覺ml覺, Php apache ve mysql i癟in toplu kurulum y繹netim arac覺 wampserver, wamp5 serisini 1.7.4 s羹r羹m羹nde b覺rakarak, wampserver 2.0 serisini duyurdu. ilk s羹r羹m Apache 2.2.6, MySQL 5.0.45, Php 5.2.5 versiyonlar覺 ile geliyor. bu s羹r羹m i癟in hen羹z herhangi bir eklenti oluturulmam覺. forumlarda yaz覺ld覺覺 kadar覺yla bu s羹r羹m baz覺 sorunlara neden oluyor. s羹r羹m羹n kararl覺 versiyonuna ulamas覺n覺 beklemekte fayda var ancak test etme ans覺n覺z varsa, hatalar覺n tespit edilmesine yard覺m edebilirsiniz.wampserver bu s羹r羹m羹 ile farkl覺 Php versiyonlar覺n覺 癟al覺t覺rma imkan覺 sunuyor.

Php versiyonu deitirme
ayr覺ca balang覺癟 sayfas覺n覺n tasar覺m覺 da deitirilmi.

wampserver a癟覺l覺 sayfas覺
ISA Server 2004 zerinde Message Screener
ISA Server 2004羹n Exchange ile entegrasyonu exchange server 覺n yay覺nlanmas覺, bata smtp olmak 羹zere pop3 protokollerinin ve owa gibi servislerin kontrol edilmesiyle salan覺r.
ISA Server 2004 smtp trafiini g羹venli hale getirmek i癟in SMTP Message Screener ve SMTP Application filter bileeni sayesinde SMTP yoluyla k繹t羹 niyetli kiilerden gelen spam ,uygulama gibi eklentilerden; buffer-overflow ya da smtp komut sald覺r覺lar覺n覺 繹nleme ama癟l覺 Exchange Server 覺m覺z覺 korumam覺za yarar. Yani k覺sacas覺 g繹nderilen e-posta lar覺n Exchange Server a ulamadan 繹nce ISA Server taraf覺ndan i癟eriinin kontrol edilip gerekli izinlere sahip olup olmad覺klar覺n覺n kontrol羹n羹 yapar. B繹ylece mailin Exchange server a ulamadan 繹nce gerekli kontolleri isa server 羹zerinde yaparak, exchange server 覺m覺z覺n i y羹k羹n羹 hafifletmi oluruz SMTP Trafiinin G羹venlii: 襤nternet 羹zerinden g繹nderilen t羹m mailler smtp protokol羹 kullanarak g繹nderilir. 襤nternet 羹zerinden mail alabilmek i癟in irketinizde dier smtp serverlar taraf覺ndan eriilebilir durumda bir smtp server 覺n覺z覺n olmas覺 gereklidir. Bununla birlikte SMTP hem protokol seviyesinde hem de smtp mesajlar覺 kullan覺larak g繹nderilen verilerin i癟erii anlam覺nda baz覺 zay覺f y繹nlere sahiptir. Buffer-overflow Sald覺r覺lar覺: Bu sald覺r覺 bir program ya da ilemin tampon bellek kapasitesinden daha fazla veriyi depolamaya 癟al覺t覺覺 zaman tetiklenmektedir. Fazladan gelen veri kendine ayr覺lan tampon bellei aarak komu bellek segmentlerine yaz覺lmaya 癟al覺覺ld覺覺nda bu segmentlerdeki dier d羹zg羹n verilerin bozulmas覺na yol a癟ar. Buffer-overflow sald覺rlar覺nda gelen verideki fazlal覺k k覺s覺mdaki baz覺 kodlar belirli bir tak覺m olaylar覺 tetiklemek 羹zere bulunabilir ve bu sayede sald覺r覺 yap覺lan bilgisayara zarar verebilir. Buffer-overflow sald覺r覺lar覺 organizasyonun SMTP Server覺na b羹y羹k SMTP komutlar覺 g繹nderilerek yap覺labilir. Bu t羹rden sald覺r覺lar覺 繹nlemenin en iyi yolu, sald覺r覺 paketlerini perimeter networkte durdurarak hedef al覺nan SMTP servera ulamas覺n覺 engellemektir. SMTP Komut Sald覺r覺lar覺: SMTP Serverlar mesajlar覺n al覺nmas覺n覺 ve g繹nderilmesini salayan komut setini i癟erirler. Sald覺rganlar bu komutlar覺 kullanarak buffer-overflow sald覺r覺lar覺 ger癟ekletirebilir ve 繹nemli dosyalar覺 ele ge癟irebilirler. Bu komutlar覺n boyutlar覺n覺 iyi konfig羹re etmeliyiz. Baz覺 SMTP komutlar覺 se癟imliktir. EXPN ve VRFY gibi baz覺 komutlar d羹zg羹n konfigure edilmezlerse server 羹zerinde bulunan al覺c覺lar覺n listesine eriilmesini salayabilirler. Eer bu komutlara ihtiya癟 duyulmuyorsa Firewall 羹zerinde devre d覺覺 b覺rak覺larak bu komutlar覺n exchange server taraf覺nda kullan覺lmas覺n覺n 繹n羹ne ge癟ilebilir Bu makalemde ISA Server 2004 羹zerinde Message Screener bileeni sayesinde neler yapabileceimizi g繹receiz. ISA Server 2004 uygulama katman覺nda filtreleme salayarak sald覺rganlar覺n buffer-overflow komutlar覺n覺 kullanarak exchange server 癟al覺an bilgisayar覺n覺z覺 devre d覺覺 b覺rakmalar覺n覺 ya da kontrol羹n羹 ele ge癟irmelerini engellemenizi salayacakt覺r. Laboratuvar ortam覺nda internal network id miz 192.168.1.0/24 ve mail server 覺m覺z覺n ip adresi 192.168.1.2

Resim-1
Standart durumda resim-2 de g繹r羹ld羹羹 gibi isa server makinas覺 ile internal network 羹n haberleebilmesi i癟in ve internete 癟覺k覺 i癟in yaz覺lmas覺 gereken kurallar g繹r羹l羹yor. Bunlara ek olarak client program覺n (mesala microsoft outlook) mail server dan mailleri 癟ekebilmesi i癟in pop3, mail g繹nderebilmesi ya da mail server 覺m覺z覺n mail alabilmesi i癟in de smtp publish kural覺n覺n yaz覺l覺yor olmas覺 gerekiyor.

Resim-2
Message Screener uygulamas覺 yapabilmek i癟in, ISA Server kurulumunda message screener bileenini install etmek gerekiyor.

Resim-3
Autorun.exe ye t覺klayarak isa kurulumunu 繹zelletirmek i癟in modify kutucuunu doldurarak ilerliyoruz.

Resim-4
Message Screener bileenin se癟tiimizde hata almam覺z覺n nedeni, ISA Server makinam覺zda smtp servisinin y羹kl羹 olmad覺覺ndand覺r. Add-Remove Windows Components wizard覺n覺 kullanarak smtp servisini y羹kl羹yoruz
Resim-5
Baar覺l覺 bir ekilde smtp servisini y羹kledikten sonra, message screener bileenini install edebiliriz

Resim-6
Bileeni se癟ip next dediimizde art覺k hata mesaj覺 ile kar覺lam覺yoruz ve baar覺l覺 bir ekilde bu bileeni kurmu oluyoruz

Resim-7
Bu bileenimizi y羹klediimize g繹re i癟 networkte ya da perimeter networkte bulunan smtp server 覺m覺za g繹re yeni mail publish kural覺m覺z覺 yazabiliriz. Pop3 server i癟in kural覺 deitirmeye gerek yok ancak gelecek mailler 繹nce baka bir smtp servera g繹nderilecei i癟in smtp server publish kural覺m覺z覺 deitiriyoruz.
Resim-8
Isa Server Management konsolunda\ISA\Configuration\Add-in\Application Filter k覺sm覺nda SMTP Filter 繹zellikliini g繹rebiliriz.
Resim-9
SMTP Filter Properties\Gneral sekmesinde bu filter i enable edip etmeyeceimizi se癟ebiliriz

Resim-10
SMTP Filter Properties \ Keywords sekmesinde e-mail i癟eriklerinde kontrol edecei s繹z dizimlerini salar. Oluturduunuz mesaj覺n konu, g繹vde ya da herikisinde birden anahtar kelime bulunduu zaman uygulanmas覺n覺 salayabiliriz. Message Screener 覺n bu t羹rden mesaj覺 silmesi, tutmas覺 ya da belirli bir posta kutusuna iletmesi i癟in konf羹re edebiliriz. rnek olarak keyword k覺sm覺na bedava kelimesini yaz覺p message subject or body i癟inde aranmas覺n覺 istersek, action olarak da forward message to turker.ata@galatasaray.gs adresini yazarsak; domainimizde herhangi bir hesaba gelen mail i癟inde bedava kelimesi ge癟en her mail ilgili hesaba y繹nlendirilecektir.

Resim-11
SMTP Filter Properties \ User-domain sekmesinde e-mail ini engellemek istediiniz g繹nderenin ad覺n覺 ya da t羹m domain ini ekleyebiliriz. SMTP g繹nderen mail hesab覺n覺 engellenmi senders ya da domains k覺sm覺nda bulursa mesaj覺 silecektir

Resim-12
SMTP Filter Properties \ Attachments sekmesinde Message Screener覺n ekli halde gelen dosyalar覺 nas覺l filtreleyeceini g繹rebiliriz. Ekli halde gelen dosyan覺n ismine, uzant覺s覺na ya da boyutuna g繹re mesaj覺 silmesini, tutmas覺n覺 veya turker.ata@galatasaray.gs adresine forward edilmesini salayabiliriz.

Resim-13
Son olarak SMTP Filter Properties \ SMTP Commands sekmesinde neler yapabileceimize bakal覺m. SMTP serverlar dier serverlar ile balant覺 oluturmak ve mesajlar覺 iletmek i癟in bir SMTP komut setini kullan覺rlar. Bu komutlara verbs (fiiller) denir. SMTP uygulama filtresi de bu komutlar覺 inceleyerek filtreleme ilemi yapar. Aa覺daki resimde kullan覺lan komutlar覺 g繹rebilirsiniz.

Resim-14
Baz覺 SMTP komutlar覺 se癟imliktir. EXPN ve VRFY gibi baz覺 komutlar d羹zg羹n konfigure edilmezlerse server 羹zerinde bulunan al覺c覺lar覺n listesine eriilmesini salayabilirler. Eer bu komutlara ihtiya癟 duyulmuyorsa Firewall 羹zerinde devre d覺覺 b覺rak覺larak bu komutlar覺n exchange server taraf覺nda kullan覺lmas覺n覺n 繹n羹ne ge癟ilebilir. SMTP command lar覺n maksimum length ini editleyebiliriz.imdiye kadar, gelen t羹m mailleri bir baka smtp server a y繹nlendirmeyi belli kurallar 癟er癟evesinde konfig羹re etmi olduk. Peki y繹nlendirdiimiz server taraf覺nda bizi neler bekliyor bu ayarlara bakal覺m.
IIS SMTP servisi y羹kl羹 olan servera geldiimizde default smtp virtual server alt覺nda domain sat覺r覺na geliyoruz.

Resim-15
Domain 羹zerinde sa click new-domain diyerek a癟覺lacak pencerede remote - *.gs, ya da galatasaray.gs, diyerek remote domain imizi oluturuyoruz

Resim-16
Aa覺daki resimde g繹rd羹羹n羹z gibi gelen mailleri g繹ndereceimiz remote domainimiz de olumu oldu.

Resim-17
Son olarak remote domain - properties ile 癟覺kan pencerede ilgili gereken deerleri yazarak, t羹m sistem ayarlar覺n覺 bitirmi oluyoruz. Allow incoming mail to be relayed to this domain iaretlenerek, route domain alt覺ndaki adresi k繹eli parantez i癟inde yazmay覺 unutmay覺n [192.168.1.2] i癟erdeki mail server 覺m覺z覺n adresini yazarak t羹m ayarlar覺 bitirmi oluyoruz

Resim-18
Bu makalemde gelen t羹m mailleri exchange server a direkt olarak iletmeden 繹nce bir baka SMTP Servera belli filtrelerde iletip, Bu SMTP Server 羹zerinden exchange servera relay edilmesini salad覺k. Bunun sayesinde hem d覺 sald覺r覺lardan mail server 覺m覺z覺 koruduk, hem de i y羹k羹n羹 k繹t羹 ama癟l覺 maillerden ar覺nd覺rd覺覺m覺z i癟in hafifletmi olduk. Bir baka makalemde g繹r羹mek 羹zere…
Microsoft SQL Server 2005 ile Veritaban覺 Y繹netimi Alan覺nda Gelen Yenilikler
SQL Server 2000 hem uygulama gelitiriciler, hem de firmalar a癟覺s覺ndan 癟ok 繹nemli kazan覺mlar salayan, rdbms alan覺nda d繹n羹m noktas覺 olarak kabul edebileceimiz bir 羹r羹n olarak hayat覺m覺zda varoldu.. A癟覺ks繹zl羹 olmak gerekirse 27 Ekim 2005 tarihinde MSDN Subscriberlara RTMi da覺t覺lmaya balanan SQL Server 2005 羹r羹n羹n羹 incelediimizde, SQL Server 2000den 2005e ge癟iin 癟ok h覺zl覺 olaca覺n覺 d羹羹nm羹yorum. Ancak 羹r羹n羹 detayl覺 olarak inceledik癟e, SQL Server 2005in uzun vadede Microsoftun rdbms alan覺nda liderliini per癟inleyecek bir 羹r羹n olaca覺 y繹n羹ndeki d羹羹nceme kat覺l覺yor olaca覺n覺zdan eminim. SQL Server 2005in uygulama gelitirme alan覺nda bize sunduu art覺lar覺 ele almadan 繹nce altyap覺da ne gibi deiikliklerin ve yeniliklerin olduunu ele almakta fayda g繹r羹yorum. Dolay覺s覺yla bu dokumanda SQL Server 2005 ile birlikte veritaban覺 y繹netimi alan覺nda gelen yenilikleri veritaban覺 mimarisi ve sotorage engine, veritaban覺 y繹netim ve gelitirme ara癟lar覺 ve s羹reklilik ve veri g羹venlii eklinde 羹癟 ana bal覺k alt覺nda ele al覺yor olaca覺z.
Veritaban覺 Mimarisi ve Storage Engine
Microsoft SQL Server 7 ile gelitirdii mimariyi s羹rekli olarak gelitirdi. Hepimizin bildii ve doruluunu kabul ettii kurala g繹re mevcut donan覺mlar覺n maliyeti d羹erken, g羹c羹 ise her 18 ayda 繹ncekine g繹re iki kat覺na 癟覺k覺yor. SQL Server 2005 ile birlikte Microsoftun 繹ncelikli hedeflerinden biri, veritaban覺 motorunun mevcut donan覺m altyap覺s覺ndan ve gelitirilen Windows Server 2003 (ve sonras覺nda gelecek olan) iletim sisteminden m羹mk羹n olan en fazla oranda faydalanmas覺n覺 salamak. SQL Server 2005 ile birlikte gelen yeni 繹zellikler ve g羹ncellemelerin dier hedefleri ise kurumlar a癟覺s覺ndan y繹netimi daha kolay ve irkete daha 癟ok deer katan bir veritaban覺 motoru oluturmak. Bu b繹l羹mde SQL Server 2005 ile birlikte SQL Server mimarisindeki yenilik ve gelimeleri, kurumumuza ve i s羹re癟lerimize ne gibi art覺lar katabileceklerini de ele alarak inceliyor olaca覺z.
Donan覺m Destei
Donan覺m alan覺ndaki gelimeler ve h覺zla daha d羹羹k seviyelere inan donan覺m maliyetleri, firmalar覺n daha g羹癟l羹 bilgisayar sistemlerine 癟ok daha d羹羹k maliyetlerle sahip olabilmesini m羹mk羹n k覺ld覺. zellikle sunucu alan覺nda 32-bit sistemlerde yaad覺覺m覺z gelimeler ve h覺zla yayg覺nlamaya balayan ve donan覺m alan覺nda bir d繹n羹m noktas覺 olarak nitelendirebileceimiz 64-bit sistemler, donan覺m alan覺ndaki sorunlar覺m覺z覺n neredeyse tamam覺n覺 ortadan kald覺rd覺. Bellek, veritaban覺 performans覺nda her zaman i癟in en kritik unsurlardan biri olmutur. 54-Bit platformunda UNIX tabanl覺 sistemler, non-clustered TPC-C performans testlerinde uzun s羹re liderlii elinde bulundurdu. Ancak SQL Server 2005, ilk 64-Bitlik s羹r羹m羹nde liderlii devrald覺. Performans testlerine bakt覺覺m覺zda, 64-Bit SQL Server 2005in, 64-Bit Windows Server 2003 羹zerinde, Intel Itanium platformunda ger癟ekten 癟ok 癟ok baar覺l覺 sonu癟lar sergilediini g繹r羹yoruz.
64-Bit Destei
SQL Server 2005, Windows Server 2003 for 64-Bit Itanium systems 羹zerinde Intel Itanium ve Itanium2 mikroilemcilerini desteklemektedir. Windows Server 2003 for 64-Bit Extended Systems 羹zerinde ise AMDnin 64-Bit Opteron platformunu ve Intelin Xeon with Intel Extended Memory 64 technology (EMT64 sistemlerini de desteklemektedir. SQL Server 2005, t羹m ana bileenleri (SQL Server Engine, Analysis Services, SQL Agent ve Reporting Services) i癟in hem 32, hem 64-Bit platformlar覺 desteklemektedir. Veritaban覺 altyap覺m覺z覺 64-Bit platformuna ta覺man覺n bize salayaca覺 en 繹nemli kazan覺m her ne kadar daha y羹ksek ilem g羹c羹 olarak g繹r羹nse de ger癟ekte en 繹nemli kazan覺m: artan adreslenebilir bellek oran覺d覺r. ekil 1:1de SQL Server 2005in 32-Bitlik ve 64-Bitlik s羹r羹mleri taraf覺ndan adreslenebilen bellek miktarlar覺n覺n kar覺lat覺rmas覺n覺 g繹rebilirsiniz.
ekil 1:1 :: 32-Bit ve 64-Bit SQL Server 2005in Bellek Adresleme Oranlar覺
32-Bit mimarisi en fazla 4GB bellek adresleyebilmektedir. Windows alt覺nda bu oran iletim sistemi ve uygulamalar aras覺nda paylat覺r覺l覺r. Dier bir deyile 2GB iletim sistemi i癟in rezerve edilirken kalan 2GB uygulamalar覺n kullan覺m覺na tahsis edilmektedir. 32-Bit Windows 羹zerinde yer alan Advanced Windowing Extensions (AWE) desteini kullanarak, 32-Bit SQL Server’覺n 32GB’a kadar bellek adresleyebilmesini salayabilmekteyiz. Her ne kadar bahsettiimiz art覺 yeterli gibi g繹r羹nebilse de, y繹netilebilen bellek sayfalar覺ndaki limit deimi olmuyor. 64-Bit Platformu adreslenebilen bellek miktar覺n覺 32TB’a 癟ekerek bu konudaki s覺k覺nt覺lar覺 uzun bir s羹re i癟in ortadan kald覺r覺yor. u anda neredeyse hi癟 bir yerde bu oranda bellek kullan覺lm覺yor olsa da, SQL Server 2005′in test edildii en y羹ksek bellek miktar覺 512GB’d覺r. Windows Server 2003 i癟in gelecek bir sonraki Service Pack ile birlikte desteklenen en y羹ksek bellek miktar覺n覺n 1TB’a 癟覺kart覺lmas覺 hedefleniyor.
NUMA (Non-Uniform Memory Architecture) Destei
Windows Server 2003′羹 羹st羹n k覺lan yeni 繹zelliklerden biride Non-Uniform Memory Architecture (NUMA) desteidir. NUMA, IBM ve Unisys gibi baz覺 sistem 羹reticileri taraf覺ndan kullan覺lan ve 癟ok ilemcili sistemlerde ilemci ve bellek kullan覺m覺n覺 SMP (Symmetric Multiprocessing) mimarisine g繹re 癟ok daha etkin bir ekilde y繹neten bir mimaridir. Standart SMP sistemlerde ilemcilerin h覺z覺 ve say覺s覺 artt覺k癟a, ilemciler aras覺nda bellee erime ama癟l覺 yaanan rekabet gereksiz younlua neden olur. Bu da doal olarak baz覺 gecikmelere neden olur. Bunun sonucunda SMP sistemler ilemci say覺s覺n覺n art覺覺yor orant覺l覺 olarak esneklik g繹steremezler. NUMA mimarisi SMP sistemlerde yaanan bu sorunlar覺, ilemcilerin RAM 羹zerindeki verilere, RAM ve BUS’覺n salayabileceinden 癟ok daha h覺zl覺 olarak erimesine olanak tan覺yarak ortadan kald覺rmak amac覺yla tasarlanm覺t覺r. NUMA mimarisi ilemci ve bellei 癟oklu ilemcilerden oluan yerel gruplara ay覺r覺r. Bu gruplar birbirlerine, gruplar aras覺 veri trafiinin aktar覺ld覺覺 harici bus’lar ile bal覺d覺r. Bu grup s覺ralama mimarisi, bellee erimek i癟in yar覺acak ilemcilerin say覺s覺n覺 limitleyerek SMP sistemlerde yaanan ilemciler aras覺 rekabetin 繹n羹n羹 kesmektedir. NUMA mimarisinin art覺lar覺ndan en fazla oranda faydalanmak i癟in hem iletim sistemi, hem de uygulamalar gruplar aras覺 veri trafiini en aza indirgeyecek ve grup i癟i eriimi artt覺racak, h覺zland覺racak ekilde tasarlanmal覺d覺r. Eer iletim sistemi ve uygulama doru olarak tasarlan覺rsa, NUMA mimarisi ilemci say覺s覺n覺n art覺覺na orant覺l覺 olarak esneklik salayacakt覺r. Windows Server 2003 ve SQL Server 2005 mimari gelimeleri b羹nyelerinde birletirerek ilemci ve bellekten en y羹ksek oranda faydalanmam覺z覺 salayacak ekilde tasarlanm覺lard覺r.
Hyper-Threading Destei
SQL Server 2005 ayn覺 zamanda Microsoft’un Windows Server 2003′e ekledii hyper-threading destei ile hyper-threading’in sunduu avantajlardan da faydalanabilmektedir. Hyper-Threading, Intel taraf覺ndan gelitirilen ve sistem 羹zerindeki her bir fiziksel ilemci i癟in iki mant覺ksal ilemci oluturan bir teknolojidir. Her bir mant覺ksal ilemci ezamanl覺 olarak farkl覺 thread’leri ileyebilme yeteneine sahiptir. Hyper-Threading’in as覺l hedefi multithreading uygulanm覺 uygulamalarda veya ayn覺 makina 羹zerinde 癟al覺an birden 癟ok say覺da uygulamaya daha iyi kaynak ayr覺m覺n覺n daha verimli yap覺lmas覺n覺 salamakt覺r.
SQL Server 2005, Windows Server 2003′羹n Hyper-Threading desteinden iki ekilde faydalanmaktad覺r. 襤lk olarak, Windows 2000′in aksine, Windows Server 2003 fiziksel ilemcileri sadece lisanslama amac覺yla saymaktad覺r. Boylece hyper-threading kullanan bir ilemci, iki yerine bir ilemci olarak say覺l覺yor. Windows Server 2003, hyper-threading kullanan sistemlere y繹nelik gelimi thread scheduling destei sunmaktad覺r. Bu deiiklikler SQL Server gibi multithread uygulamalarda 癟ok daha iyi performans sonu癟lar覺 alabilmemizi sal覺yor.
SQL Server Engine
襤lk b繹l羹mde SQL Server 2005 ile gelen donan覺m desteine biraz daha geni a癟覺dan bakt覺k. Bu b繹l羹mde ise SQL Server veritaban覺 motorundaki yeniliklere daha detayl覺 bak覺yor olaca覺z.
.NET Framework Entegrasyonu
SQL Server 2005 ile birlikte gelen en 繹nemli yeniliklerin ba覺nda Microsoft .NET Framework entegrasyonu ve salad覺覺 avantajlar geliyor diyebiliriz. .NET Framework entegrasyonu SQL Server 2005′in esnekliini stored procedure, user-defined function, trigger, aggregate ve user-defined type’lar覺n, visual basic, c# veya j# gibi bir .NET dili ile gelitirilmesini m羹mk羹n k覺larak artt覺rmaktad覺r. Sonraki b繹l羹mlerde bu entegasyonun 癟ok daha derin ve detayl覺 olduunu g繹receiz.
Gelitirilmi oklu Instance Destei
SQL Server 2005 Enterprise Edition’da bulunan bir dier yenilik ise ayn覺 anda 癟al覺t覺r覺labilecek instance say覺s覺n覺n 50′ye kadar artt覺r覺labiliyor olmas覺. SQL Server 2000′de ezamanl覺 instance destei 16 ile s覺n覺rl覺yd覺.
Yeni Veri T羹rleri
SQL Server 2005 pek 癟ok yeni veri t羹r羹n羹 desteklemektedir. .NET Framework entegrasyonu kullan覺c覺 tan覺ml覺 t羹rlerin gelitirilmesini salarken, varbinary(max) ve XML t羹r羹nde yeni veri t羹rlerini de desteklemektedir. Varbinary(max) beri t羹r羹 SQL Server’da LOB’lar覺n kullan覺m覺 i癟in yeni bir metod sunmaktad覺r. Image ve Text veri t羹rlerinin aksine varbinary(max) veri t羹r羹 bir deiken olarak kullan覺labilir ve daha kolay ve tutarl覺 ilem yapmak i癟in daha k羹癟羹k veri t羹rleri gibi ilem yap覺labilir.
Yeni XML veri t羹r羹 varbinary(max) veri t羹r羹ne dayanmaktad覺r ve XML dokumanlar覺n覺 veritaban覺nda saklamam覺za imkan verir. XML veri t羹r羹, XML format覺ndaki verilerin h覺zl覺 ve kolayca saklanmas覺 ve kullan覺lmas覺n覺 salamak amac覺yla gelitirilmi ve XML dokumanlar覺n覺n schema ile dorulanmas覺na olanak vermektedir. SQL Server 2005′te yer alan XML ve dier veri t羹rlerini ileriki b繹l羹mlerde ele al覺yor olaca覺z.
Database Snapshot’lar覺 ve Mirroring
Database Mirroring veritaban覺 seviyesinde sunulan ve s羹reklilii artt覺rmak, salamak i癟in SQL Server 2005 taraf覺ndan desteklenen t羹m donan覺mlar ile uyumlu 癟al覺an bir 繹zelliktir. Database Mirroring i癟in primary server ve mirrored server aras覺nda bir payla覺ma gereksinim ve herhangi bir uzakl覺k limiti bulunmamaktad覺r. Database Mirroring, transaction log’lar覺n覺 primary ve mirrored sunucu aras覺nda ileterek 癟al覺maktad覺r, bu yap覺s覺ndan dolay覺 Database Mirroring 繹zelliini ger癟ek-zamanl覺 bir log-shipping uygulamas覺 olarak kabul edebiliriz. Database Mirroring tek bir veritaban覺 ile kullan覺labilecei gibi, 癟ok say覺da veritaban覺 ile de kullan覺labilir.
Database Snapshot’lar覺 veritaban覺n覺n istenilen bir an覺na y繹nelik read-only fotoraf覺n覺 verirler. Database Snapshot’lar覺 raporlama ama癟l覺 bir veritaban覺n覺n istenilen zamana ait bir kopyas覺n覺 oluturmak veya istenilen zamanda roll-back yapmak i癟in belirli bir anda yedek almak ama癟l覺 kullan覺labilirler. Database Snapshot’lar覺, Database Mirroring ile bir arada kullan覺larak mirrored server 羹zerindeki verilere dayanan bir reporting server oluturmak i癟in kullanabilmekteyiz. Mirrored sunucu 羹zerindeki veri, bu sunucunun her zaman recovery mode’da olmas覺ndan dolay覺 dorudan eriilebilir deildir ancak Mirrored database 羹zerinde bir Database Snapshot yaratarak bu verileri (read-only olarak) raporlama amac覺yla kullanabiliriz.
Native HTTP Destei
SQL Server 2005 ile birlikte gelen en 繹nemli yeniliklerden biri de SQL Server Engine’e eklenen native HTTP desteidir. SQL Server’覺n gelen HTTP taleplerini ileyebilmesi, SQL Server’a stored procedure’leri ve SQL ifadelerini SOAP protokol羹n羹 kullanarak 癟al覺t覺rabilmesi anlam覺na geliyor. Bu ayn覺 zamanda SQL Server 2005′in, IIS olmadan web servis taleplerini kar覺layabilmesi anlam覺na geliyor. SQL Server ayn覺 zamanda endpointler i癟in web servislerini WSDL olarak yay覺nlama yeteneine sahiptir. SQL Server’覺n HTTP 繹zellii hem Windows hem de SQL Server authentication’覺, SSL ile birlikte desteklemektedir. Bu 繹zelliin art覺lar覺n覺 繹zellikle uygulama gelitiriciler i癟in daha da artt覺rmak i癟in stored procedure’ler sonu癟 k羹melerini ADO.NET dataset’leri olarak d繹nd羹rebilme imkan覺n覺 sunmaktad覺r.
Sunucu Olaylar覺 ve DDL Trigger’lar覺
SQL Server 2005 ile birlikte gelen Sunucu Olay ve Trigger 繹zellikleri, sistemdeki deiikliklere kar覺 nas覺l kar覺l覺k verileceini programatik olarak belirlememizi m羹mk羹n k覺lmaktad覺r. Bu iki 繹zellikte benzer iler yap覺yor gibi g繹r羹nse de, sunucu taraf覺nda ilemleri farkl覺 ekillerde ger癟ekletiriyorlar. Standart DML trigger’lar覺nda olduu gibi, DDL trigger’lar覺 da stored procedure’leri 癟al覺t覺ran senkronize olaylard覺r.
Sunucu olaylar覺 ise asenkrondur. Sunucu olay modelinde sunucu SQL Server Broker Service’e bir olay g繹nderir. Olayla ilgilenen bu olaya sonradan ba覺ms覺z olarak eriebilir. Olay XML format覺nda kaydedilir. Bir olay覺 geri alma imkan覺 yoktur ancak kimsenin o olaya erimemesi durumunda ignore edilir. Olay ger癟ekletiinde sizi olay覺n veya opsiyonel olarak bir kodun 癟al覺t覺r覺ld覺覺ndan haberdar edebilecek sistem olay覺 tetiklenir. Aa覺daki kod bir event notification oluturulurken kullan覺lacak s繹z dizimini 繹rneklemektedir:
CREATE EVENT NOTIFICATION MyDDLEvents
ON SERVER FOR DDL_STATEMENTS TO SERVICE MyDDL_log
Bu kod yeni bir event oluturup “MyDDLEvents” eklinde isimlendiriyor daha sonra oluturduu olay覺 DDL statement ile ilikilendiriyor. TO SERVICE ifadesi MYDLL_log adl覺 SQL Server Broker Servisinin bu olay覺n al覺c覺s覺 olduunu belirtiyor. SQL Server Broker Servisini ilerleyen b繹l羹mlerde detayl覺 olarak ele al覺yor olaca覺z.
Veritaban覺 Veri Dosyas覺ndaki Yenilikler
SQL Server 2005, ALTER DATABASE komutu arac覺l覺覺yla veritaban覺n覺n log ve veri dosyas覺n覺n yerlerini deitirme imkan覺 sunuyor. SQL Server 2000 tempdb veritaban覺 i癟in dosyalar覺n覺 ta覺maya izin veriyordu ancak dier veritabanlar覺 i癟in izin verilmiyordu. Tahmin edebileceiniz 羹zere SQL Server 2005 dosyalar覺n ta覺nmas覺n覺 sadece offline bir ilem olarak m羹mk羹n k覺l覺yor. Aa覺daki 繹rnek, veritaban覺 dosyalar覺n覺n yerini deitirmeyi salayan ALTER DATABASE komutunun s繹zdizimini g繹stermektedir:
ALTER DATABASE <database_name>
MODIFY FILE(name=<’veri_dosyasinin_adi’>, filename=<’yeni_veritabani_dosyasi_yolu’>)
Data Partitioning
SQL Server 2005′te yer alan bir dier 繹zellikse veri b繹l羹mlendirmedir. Veri b繹l羹mlendirme tablo veya index gibi tek bir veritaban覺 nesnesini birden 癟ok b繹l羹me ay覺rma imkan覺 vermektedir. Veri b繹l羹mlendirme 繹zelliinin 繹ncelikli hedefi, 癟ok b羹y羹k tablo ve indexleri y繹netmeyi daha kolay hale getirmektir. B繹l羹mlendirme, uygulamalar taraf覺ndan alg覺lanamamaktad覺r. Uygulama 癟al覺覺rken sadece tek bir tablo g繹rmekte ve SQL Server taraf覺ndan y繹netilen alt b繹l羹mlerden asla haberdar olmamaktad覺r. B繹l羹mler, veritaban覺n覺n s羹rekliliini etkilemeden oluturulabilir ve silinebilirler. Ek olarak partitioning verileri, bir uygulama taraf覺ndan kullan覺l覺rken dahi uygulamay覺 etkilemeden b繹l羹mlendirmenize olanak tan覺maktad覺r. ekil 1.1 b繹l羹mlendirmenin yap覺s覺n覺 basit癟e 繹rneklemektedir.
ekil 1.1 :: Veri B繹l羹mlendirme
SQL Server 2005 tablolar, indexler ve indexlenmi view’lar i癟in veri b繹l羹mlendirmeyi desteklemektedir. Sat覺r, veri b繹l羹mlendirmenin en temel eleman覺d覺r. B繹l羹mler, sat覺rlar覺n alanlar覺nda bulunan deerlere g繹re oluturulabilir. Bu ilem, horizontal partitioning olarak adland覺r覺lmaktad覺r. rnein bir tablo, her y覺l i癟in bir b繹l羹m olacak ekilde tarihe g繹re b繹l羹mlendirilebilir.
Veri b繹l羹mlendirme 癟ok b羹y羹k veritabanlar覺nda (Very Large Databases - VLDBs) baz覺 繹nemli avantajlar salamaktad覺r. Veri b繹l羹mlendirme, verilerin y繹netimini kolaylat覺rmaktad覺r. rnein tarihe g繹re b繹l羹mlendirilmi b羹y羹k bir tabloda 繹nceki y覺llar覺 hari癟 tutarak sadece bu y覺l覺n yedeini almak isteyebilirsiniz. Bir dier avantaj ise 癟ok ilemcili sistemlerde daha y羹ksek performans i癟in hangi b繹l羹m羹n, hangi ilemci taraf覺ndan ileneceini belirtebilirsiniz.
Veri b繹l羹mlendirmeyi ger癟ekletirmek i癟in atmam覺z gereken iki basit ad覺m vard覺r. 襤lk olarak hangi nesneyi, ne ekilde b繹l羹mlendireceimizi belirlememiz gerekir. 襤kinci olarak her bir b繹l羹m i癟in fiziksel bir depolama lokasyonu belirtmemiz gerekir. Farkl覺 b繹l羹mler, tek bir dosya grubuna atanabilir veya farkl覺 dosya gruplar覺 tan覺mlanabilir.
Aa覺daki 繹rnek basit bir partition function oluturmay覺 ve tabloyu bir Range Partition kullanarak b繹l羹mlendirmek 羹zere planlamay覺 繹rneklemektedir:
CREATE PARTITION FUNCTION MyPF
(int) AS RANGE LEFT FOR VALUES (50, 100)
GO
CREATE PARTITION SCHEME MyPS
AS PARTITION MyPF TO (FileGroup1)
GO
CREATE TABLE MyTable (col1 int, col2 varchar(50))
ON MyPS(col1)
GO
襤lk sat覺r MyPF adl覺 bir partition oluturuyor. int, b繹l羹mlendirmenin int t羹r羹nde tan覺mlanm覺 bir s羹tuna g繹re yap覺laca覺n覺 belirtiyor. RANGE keyword’u Range b繹l羹mlendirmenin uygulanaca覺n覺 belirtiyor. LEFT keyword’u kesin olmayan deerlerin hangi partition’da saklanaca覺n覺 belirtiyor. VALUES ifadesi b繹l羹mler i癟in s覺n覺r deerleri belirtmek i癟in kullan覺l覺yor. Bu deerlerin s覺n覺r deerleri olduunu ve b繹l羹mlendirilmediklerini unutmamakta fayda var. Bu komut 3 b繹l羹m羹n olumas覺 ile sonu癟lanacakt覺r. 襤lk b繹l羹m negatif deerleri ve 50′ye kadar olan pozitif deerleri, ikinci b繹l羹m 51 ile 100 aras覺ndaki deerleri, 羹癟羹nc羹 b繹l羹m ise 101′den b羹y羹k deerleri i癟erecektir.
襤kinci sat覺r, MyPS adl覺 bir b繹l羹m emas覺 oluturuyor. AS PARTITION ifadesi ise bu ema taraf覺ndan kullan覺lacak olan b繹l羹m fonksiyonunu belirtmekte kullan覺l覺yor. Bu 繹rnek MyPF adl覺 b繹l羹m fonksiyonunu kullan覺yor. TO ifadesi b繹l羹mlerin kaydedilecei dosya grubunu veya gruplar覺n覺 belirtmekte kullan覺l覺yor. Bu 繹rnek FileGroup1 adl覺 tek bir dosya grubunu kullan覺yor.
Daha sonra, b繹l羹m emas覺n覺n b繹l羹mlendirilecek tablo ile ilikilendirilmeis gerekiyor. Bu 繹rnek tablonun b繹l羹mlendirilmesine olanak tan覺yan extended CREATE TABLE s繹zdizimini g繹stermektedir. CREATE TABL ifadesinin ilk b繹l羹m羹 ayn覺. Tablo ad覺n覺 (bu 繹rnekte MyTable) ve s羹tunlar覺 belirtiyor. rnek tablomuz col1 ve col2 adl覺 iki s羹tun i癟eriyor. Yeni gelen ON keywordu kullan覺lacak b繹l羹m emas覺n覺 belirtmekte kullan覺l覺yor. Bu 繹rnekte az 繹nce oluturduumuz MyPS emas覺 kullan覺l覺yor. B繹l羹mlendirme’de kullan覺lacak verileri i癟eren s羹tun parantez i癟inde yaz覺l覺yor. Bu 繹rnekte kulland覺覺m覺z s羹tun: col1. col1 s羹tununun veri t羹r羹 int t羹r羹nde. Se癟ilen s羹tunun veri t羹r羹, b繹l羹mlendirme fonksiyonunda belirtilen veri t羹r羹 ile ayn覺 olmal覺d覺r.
B繹l羹mlendirmede kullan覺lacak s羹tunlar覺n sahip olabilecei veri t羹rleri konusunda baz覺 k覺s覺tlamalar s繹z konusudur. Bu k覺s覺tlamalar, index tan覺mlarken s繹z konusu k覺s覺tlamalara olduk癟a benzemektedir. Text, ntext ve image veri t羹rleri kullan覺lam覺yor. Ayn覺 ekilde timestamp s羹tunlarda partitioning key olarak belirtilemiyor. Sadece native T-SQL veri t羹rleri partitioning key tan覺mlamalar覺nda kullan覺labilmektedir. Her bir tablo i癟in 1000 b繹l羹m 羹st s覺n覺r覺 ve t羹m b繹l羹mlerin tek bir node 羹zerinde bulunmas覺 zorunluluu mevcuttur.
Index Alan覺ndaki Yenilikler
SQL Server 2005, indexlerde de pek 癟ok yenilik getiriyor. 襤lk olarak, art覺k bir clustered index’in rebuild edilmesi, t羹m non-clustered index’lerin rebuild edilmesini gerektirmiyor. SQL Server 2000′de, bir clustered index’i rebuild ettiimiz zaman, t羹m ilgili non-clustered index’ler de rebuild ediliyordu. SQL Server 2005, non-clustered index’lerin hasar g繹rmesini engelledii i癟in bu indexlerin rebuild edilmesi gerekmiyor.
襤kinci olarak, yeni gelen “included columns” 繹zellii, non-key s羹tunlar覺n da bir index’e eklenmesine olanak tan覺yor. Bu yeni 繹zellik daha 癟ok sorgunun index taraf覺ndan kapsanmas覺na ve b繹ylece SQL Server Engine’in sorguyu tamamlamak i癟in tabloya gitmesi ihtiyac覺n覺 ortadan kald覺rarak sorgu performans覺n覺n ve h覺z覺n覺n artmas覺na neden oluyor. Bu 繹zelliin en iyi yanlar覺ndan biride, index’e dahil edilen ve anahtar覺n bir b繹l羹m羹 olmayan s羹tunlar, hala 900 byte olan index 羹st s覺n覺r覺na dahil edilmiyor olmas覺.
SQL Server 2005 ile gelen bir dier yenilikse index’lerin disable edilebiliyor olmas覺. Bir index’in disable edilmesi, bu index’in kullan覺lmas覺n覺 ve SQL Server Engine taraf覺ndan ilemlerde dikkate al覺nmas覺n覺 engelliyor. Bir index disable edildiinde, SQL Server index i癟in rezerve edilen alan覺 serbest b覺rak覺r ancak index’in metadata’s覺n覺 saklar. Disable edilen index’in yeniden aktif duruma getirilebilmesi i癟in, ALTER INDEX komutu ile rebuild edilmesi gerekir.
Online Index 襤lemleri
SQL Server’覺n 繹nceki s羹r羹mleri, index’e rebuild s羹recindeyken erimeye imkan vermiyordu. Tablo’nun yeniden update edilebilir olmas覺 i癟in rebuild s羹recinin tamamlanmas覺n覺 beklememiz gerekiyordu. SQL Server 2005′in online index ilemleri 繹zellii, uygulamalar覺n index rebuild s羹recindeyken, tablo 羹zerinde insert, update ve delete gibi ilemler yaparak index’e eriebilmelerine olanak tan覺yor. Bu konuyu da ilerleyen b繹l羹mlerde detayl覺 olarak ele al覺yor olaca覺z.
System Catalog ve Metadata Konular覺ndaki Yenilikler
SQL Server 2000 ve daha 繹nceki s羹r羹mlerde, sistem katalou ve metadata, master veritaban覺nda her veritaban覺n覺n bir par癟as覺 olarak saklan覺yordu. SQL Server 2005 ile birlikte metadata sistem taraf覺ndan sys ad覺nda bir nesne olarak kaydedilen resource veritaban覺nda saklanmaya balad覺. SQL Server 2005 ile art覺k birlikte sistem veritabanlar覺na dorudan eriemiyoruz. Bu deiiklik daha y羹ksek g羹venlik ve daha h覺zl覺 sistem g羹ncellemeleri salamak amac覺yla getirildi. Catalog metadata’s覺n覺n g羹venlii row-level filtreler ile salanm覺t覺r. SQL Server 2005′te G羹venlik alan覺ndaki yenilik ve gelitirmeleri ilerleyen b繹l羹mlerde detayl覺 olarak ele al覺yor olaca覺z.
Yeni metadata, Microsoft taraf覺ndan dokumante edilmemi olan ve kullan覺lmamas覺 konusunda uyar覺da bulunduu sistem tablolar覺n覺 kullanmad覺覺n覺z s羹rece tamamen backward compatible’d覺r. SQL Server 2005′te sistem metadatas覺, 癟eitli catalog view’lar覺 taraf覺ndan sunulmaktad覺r. Catalog view’lar覺, ANSI INFORMATION_SCHEMA view’lar覺, property fonksiyonlar覺 ve built-in fonksiyonlar ile birlikte, sistem veritaban覺 ve tablolar覺na dorudan eriim ihtiyac覺n覺 tamamen ortadan kald覺rmaktad覺r. Toplamda 250nin 羹zerinde catalog view’覺 bulunmaktad覺r ve bu view’lar her kullan覺c覺 veritaban覺n覺n sys emas覺ndan g繹r羹nt羹lenebilir. Yeni sistem view’lar覺n覺 Microsoft SQL Server Manager Studio’da, Object Browser’覺 a癟arak, ilgili veritaban覺na -> views -> system views node’una giderek bulabilirsiniz. Ayn覺 zamanda yeni bir sorgu ekran覺 a癟arak aa覺daki kod ile de g繹r羹nt羹leyebilirsiniz.
select * from sys.system_views
Multiple Active Results Sets (MARS)
SQL Server’覺n 繹nceki s羹r羹mleri her bir balant覺da sadece bir sonu癟 k羹mesini destekliyordu. SQL server 2005 tek bir balant覺da birden 癟ok sonu癟 k羹mesini destekliyor. Bu 繹zellik, veritaban覺na tek bir balant覺 a癟arak bir sorgu 癟al覺t覺rma, sonu癟 k羹mesi 羹zerinde 癟al覺ma, sonras覺nda bir baka sorgu daha 癟al覺t覺rarak sonu癟 k羹mesi 羹zerinde 癟al覺maya devam edebilme imkan覺 sal覺yor. Bunun uygulamalar a癟覺s覺ndan sunduu avantaj ise, uygulaman覺n oluan sonu癟 k羹melerinin t羹m羹ne eriebiliyor ve ilem yapabiliyor olmas覺d覺r.
Bulk Data Loading
SQL Server 2005 bulk data loading 繹zelliinde, 繹nemli bir performans art覺覺 ile birlikte pek 癟ok yenilik sunuyor. Bulk Data Loading 繹zellii art覺k XML tabanl覺 bir dosya kullanarak Bulk Copy programlar覺n覺n format dosyas覺n覺n salad覺覺 t羹m 繹zellikleri sunuyor. Ek olarak BCP’nin XML format覺nda ilem yapmas覺, dosyalar覺n daha kolay okunabilmesini ve anla覺labilmesini sal覺yor. nceki uygulamalar ile uyumluluu salamak i癟in eski BCP format覺 halen desteklenmektedir.
SQL Server 2005′in bulk data loading prosesi art覺k hatal覺 sat覺rlar覺n kayd覺n覺 tutma 繹zelliini salamaktad覺r. Bu, y羹kleme ileminin hata ile kar覺la覺lmas覺 durumunda da devam edebilmesini salamaktad覺r. Hatal覺 olarak formatlanm覺 kay覺tlar bir hata kay覺t dosyas覺na kaydedilmektedir. S覺n覺rlara uymayan sat覺rlar ise hata durumuna bal覺 olarak spesifik bir hata tablosuna y繹nlendirilirler.
Full-Text Search
SQL Server 2005′te Full-Text Search 繹zellii de gelitirilmitir. SQL Server’覺n Full-Text Search 繹zellii ile birlikte 癟al覺abilmemiz i癟in SQL Server 2005′e pek 癟ok yeni DDL ifadesi eklenmitir. Yeni DDL ifadelerine, CREATE FULLTEXT CATALOG ve CREATE FULLTEXT INDEX ifadelerini 繹rnek olarak verebiliriz.
SQL Server 2005′te Full-Text Search 繹zelliinde ger癟ekletirilen yenilikler, Full-Text Search kataloglar覺n覺n ve indexlerin yedeklenebilmesi ve geri y羹klenebilmesini, Full-text kataloglar覺n ilgili veritabanlar覺na attach ve detach edilebilmesini ve thesaurus kullanarak e anlaml覺 kelimelerle yap覺lan aramalar覺 bulma desteini kapsamaktad覺r.
T-SQL Yenilikleri
SQL Server 2005 ile birlikte T-SQL’de de pek 癟ok yenilik kar覺m覺za 癟覺k覺yor. Bu yenilikler Common Table Expressions’覺, gelitirilmi TOP ve WAITFOR ifadelerini, DML ifadeleri i癟in OUTPUT ifadesini i癟ermektedir. Bu yenilikleri ileriki aamalarda SQL Server 2005′te T-SQL Alan覺ndaki Yenilikler bal覺kl覺 b繹l羹mde detayl覺 olarak ele al覺yor olaca覺z.
SQL Server 2005te G羹venlik Alan覺ndaki Yenilikler
G羹venlik Microsoft a癟覺s覺ndan her zaman en 繹ncelikli konular aras覺nda yer alm覺t覺r. Microsoft’un Trustworthy Computing vizyonunun hedefi, t羹m Microsoft uygulamalar覺n覺n daha g羹venli ve g羹venilir olmas覺n覺 salamakt覺r. Trustworthy Computing vizyonunun bir par癟as覺 olarak SQL Server 2005, g羹venlik alan覺nda 癟ok 繹nemli yenilik ve iyiletirmelerle birlikte gelmektedir. SQL Server 2005′in gelitirme grubu 羹r羹n羹n tasar覺mdan, da覺t覺ma, 癟ok daha salam ve g羹venli olmas覺na odaklanarak 癟al覺t覺. SQL Server 2005′in g羹venlik tasar覺m覺nda Microsoft bir ka癟 temel g羹venlik kural覺na bal覺 kald覺. 襤lk olarak kurulum s覺ras覺nda t羹m standart ayarlar覺 sistemi en g羹venli k覺lacak ekilde belirledi. Kullan覺c覺lar daha az g羹venli olan dier se癟enekleri ihtiya癟lar覺 dorultusunda kullanabiliyor olsalar da, standart ayarlar, sistemin en y羹ksek g羹venlik seviyesini yakalamas覺na odaklanm覺t覺r. 襤kinci olarak sistem tasar覺m覺 en az yetki gerektirecek ekilde yap覺ld覺. Son olarak Microsoft potansiyel risk alan覺n覺 sadece gereksinim duyulan bileenleri kurarak minimuma indirgemeyi hedeflemitir.
SQL Server 2005′te yer alan t羹m g羹venlik 繹zellikleri, Microsoft’un 2002 y覺l覺n覺n balar覺nda gelitirdii g羹venlik tekniklerinden etkilenmitir. Bu b繹l羹mde ele alaca覺m覺z g羹venlik 繹zelliklerinden bal覺calar覺; kullan覺c覺lar覺n emalardan ayr覺lmas覺n覺, yeni stored procedure 癟al覺t覺rma konseptini, daha detayl覺 yetki kontrol羹n羹, yeni password policy sistemini, row-level Security’de yer alan yenilikleri ve kataloglar i癟in gelitirilmi g羹venlik tekniklerini i癟ermektedir.
Kullan覺c覺 - ema Ayr覺m覺
SQL Server 2005′te gelen en 繹nemli g羹venlik deiikliklerin ba覺nda, kullan覺c覺-ema ayr覺m覺 gelmektedir. Bir kullan覺c覺 veya daha doru s繹ylemek gerekirse bir principal, veritaban覺 nesnelerinin kendisine kar覺 korunduu bir varl覺kt覺r. Principal bir Windows kullan覺c覺s覺, SQL Server kullan覺c覺s覺, bir rol veya bir application role olabilir. SQL Server 2000 ile veritaban覺 nesneleri dorudan kullan覺c覺lara aitti ve bu kullan覺c覺lar sys_users sistem tablosunda kay覺tl覺 tutulmaktayd覺. SQL Server 2005′te bu yap覺 t羹m羹yle deitirildi ve veritaban覺 nesnelerinin sahiplii emalara verildi. Kullan覺c覺lar ise art覺k dorudan veritaban覺 nesnelerinin sahibi durumda deil, emalar覺n sahibi durumunda oluyorlar. SQL Server 2005 ile birlikte kullan覺c覺lar ve dier g羹venlik principal’lar覺 yeni sys.database_principals adl覺 view ile g繹r羹nt羹lenebilmektedir. SQL Server 2005′in ema listesine ise sys.schemas view’覺 ile eriilebilir.
emay覺 癟eitli nesneler i癟in bir container olarak d羹羹nebiliriz. ema, SQL Server taraf覺ndan kullan覺lan d繹rt b繹l羹ml羹 isimlendirme yap覺s覺n覺n 羹癟羹nc羹 b繹l羹m羹 taraf覺ndan tan覺mlanmaktad覺r. Aa覺daki 繹rnek SQL Server 2005′in isimlendirme s繹z dizimini 繹rneklemektedir.
sunucu_adi.veritabani_adi.schema_adi.nesne_adi
SQL Server’覺n 繹nceki t羹m s羹r羹mlerinde schema ismi ve owner’覺n ismi genellikle ayn覺 olurdu. SQL Server 2005 ile birlikte owner, schema’dan ayr覺lm覺 durumdad覺r. SQL Server 2000 ve 繹nceki s羹r羹mler nesne isimlerini 癟繹z羹mlerken SQL Server ilk olarak veritabani_adi.kullanici_adi.nesne_adi’na bak覺yor ve 癟繹z羹mleme baar覺s覺z oluyordu, daha sonra ise veritabani_adi.nesne.adi’na bak覺yordu.
SQL Server 2005′te kullan覺c覺 ve eman覺n ayr覺lmas覺n覺n temel nedeni, bir kullan覺c覺ya ait 癟ok say覺da nesnenin ownership’liini deitirme ihtiyac覺yd覺. Ek olarak, bir veritaban覺 nesnesinin isminin deimesi ayn覺 zamanda bir isim deiikliine neden oluyordu. rnein MyDB veritaban覺nda yer alan Tablo1′in owner覺 Kullan覺c覺A’dan Kullan覺c覺B olarak deitirildiinde tablonun ismi MyDB.Kullan覺c覺A.Tablo1′den MyDB.Kullan覺c覺B.Tablo1′e d繹n羹mektedir. Bu problemi 繹nlemek i癟in 癟ou kurum t羹m veritaban覺 nesnelerinin dbo taraf覺ndan sahiplenilmesi eklinde bir standart uygulama kullanmaya balad覺.
SQL Server 2005′in veritaban覺 ownership zincirini ekil 1.2′de g繹rebilirsiniz.
ekil 1.2 :: SQL Server 2005, Veritaban覺 Ownership Zinciri
SQL Server 2005 ile birlikte veritaban覺 nesneleri emalar i癟inde bulundurulmaya ve emalar kullan覺c覺lar taraf覺ndan own edilmeye balad覺. Bu yeni soyutlama modeli veritaban覺 nesnelerinin sahibinin belirlenmesi ve deitirilmesini kolaylat覺rarak daha kolay y繹netilebilir bir yap覺 olumas覺n覺 salad覺. SQL Server 2005′te veritaban覺nda herhangi bir nesnenin sahibi durumundaki bir kullan覺c覺n覺n silinmesi sadece DBA’in ilgili t羹m nesnenin/nesnelerin owner覺n覺 deitirmesi deil, sadece bu nesneleri i癟eren eman覺n sahibinin deitirilmesi anlam覺na geliyor. Bu DBA’in yapmas覺 gereken ilem ve m羹dahale edilmesi gereken nesne say覺s覺n覺 azaltarak, ilgili eman覺n g羹ncellenmesinden sonra ilgili kullan覺c覺 accountunun drop edilerek ilerin 癟ok daha h覺zl覺 tamamlanabilmesini sal覺yor. Ek olarak nesnenin / nesnelerin ismi deimemi oluyor.
Tabi bu deiikliklerle birlikte SQL Server’覺n veritaban覺 nesnelerinin isimlerini 癟繹z羹mlemede kulland覺覺 y繹ntem de deiiyor. Art覺k her kullan覺c覺 i癟in kullan覺c覺 il ilikilendirilmi varsay覺lan bir ema mevcuttur ve SQL Server 2005 ilk olarak kullan覺c覺n覺n varsay覺lan emas覺na bakar. Eer baar覺s覺z olursa SQL Server nesneye dbo’nun ema ismine bakarak erimeye 癟al覺覺r. rnein Kullan覺c覺A varsay覺lan ema olarak SchemaA ile ilikilendirilmise ve bu kullan覺c覺 Tablo1 羹zerinde bir sorgu 癟al覺t覺r覺rsa, SQL Server ilk olarak SchemaA.Tablo1′i kullanarak isim 癟繹z羹mleme yapmaya 癟al覺acak baar覺s覺z olursa dbo.Tablo1′e bakacakt覺r.
SQL Server 2000 veritabanlar覺n覺n birden 癟ok kullan覺c覺 ve rol i癟erebildii gibi SQL Server 2005 veritabanlar覺 da birden 癟ok ema i癟erebilir. Her ema kendisine 繹zg羹 bir kullan覺c覺 veya rol olan principal’a sahiptir. 襤sim 癟繹z羹mleme ilemleri i癟in her kullan覺c覺 varsay覺lan bir emaya sahiptir, veritaban覺 nesneleri ise ema i癟inde yer al覺r. ema i癟inde yeni veritaban覺 nesneleri oluturmak i癟in ilgili nesne i癟in CREATE, ilgili ema 羹zerinde ise ALTER veya CONTROL yetkileri olmas覺 gerekir. Ownership zinciri hala emalara deil ger癟ek ownera dayanmaktad覺r.
SQL Server 2005 kullan覺c覺 ve ema ayr覺m覺n覺 desteklemek i癟in USER, ROL ve SCHEMA nesneleri i癟in CREATE, DROP, ALTER ifadelerinde pek 癟ok DDL deiiklii ile gelmektedir.
Aa覺daki kod, bir veritaan覺 emas覺n覺n nas覺l oluturulduunu ve assign edildiini 繹rneklemektedir.
/* Yeni bir login olutur */
CREATE LOGIN UserA WITH PASSWORD = ‘ABC123#$’
GO
/* Oluturulan login i癟in bir kullan覺c覺 olutur. ema varolmak zorunda deildir */
CREATE USER UserA FOR LOGIN UserA
WITH DEFAULT_SCHEMA = MySchema
GO
/* emay覺 olutur ve owner覺 ile ilikilendir */
CREATE SCHEMA MySchema AUTHORIZATION UserA
GO
/* Yeni eman覺n i癟inde bir tablo olutur */
CREATE TABLE MySchema.Table1 (col1 char (20))
GO
rnein ilk sat覺r覺 UserA adl覺 yeni bir login oluturuyor ve bir parola belirliyor. 襤kinci sat覺r oluturulan login i癟in yeni bir kullan覺c覺 oluturuyor ve varsay覺lan emay覺 belirtiyor. Bu aamada belirtilen eman覺n varolmas覺 gerekmemektedir. Yeni kullan覺c覺 olutururken varsay覺lan emay覺 belirtmezseniz dbo ile ayn覺 varsay覺lan ema kullan覺lacakt覺r. Sonraki ad覺mda CREATE SCHEMA ifadesi ile MySchema adl覺 ema oluturuluyor. AUTHORIZATION ifadesi eman覺n owner覺n覺n UserA olduunu belirtiyor ve ema i癟inde Table1 adl覺 bir tablo oluturuluyor.
Stored Procedure Execution Context
Microsoft Stored Procedure Execution Context adl覺 bir 繹zellii deklare etmi olsa da, bu 繹zellik stored procedure’ler d覺覺ndaki mod羹ller i癟in de (fonksiyonlar veya assemblyler) ge癟erlidir. Bir mod羹l i癟in execution context belirtmek mod羹l羹n i癟eridi t羹m ifadelerin belirtilen execution context’e bal覺 olarak yetki denetiminden ge癟irilmesine neden olacakt覺r. Dier bir deyile, bir mod羹l i癟in execution context’in belirtilmesi, mod羹l羹n kapsad覺覺 t羹m ifadelerin, mod羹l羹 癟al覺t覺ran kullan覺c覺 yerine belirtilen kullan覺c覺n覺n ownershipliinde 癟al覺t覺r覺lmas覺 anlam覺na geliyor (襤ki kelime ile 繹zetlemek gerekirse: identity impersonation diyebiliriz). ekil 1.3 SQL Server 2005′in ownership mimarisini g繹stermektedir.
ekil 1.4 :: SQL Server 2005 Ownership Mimarisi
UserA’n覺n dbo.Proc1′i 癟al覺t覺rabilmesi i癟in UserA’n覺n bu nesne 羹zerinde execute yetkisinin olmas覺 gerekiyor. Ancak dbo.Proc1, dbo.Table1′e eritiinde herhangi bir yetki denetimi yap覺lm覺yor, 癟羹nk羹 dbo her iki nesneninde owner覺 durumunda. Sonraki senaryoda, UsrA’n覺n UserB.Proc2′yi 癟al覺t覺rabilmesi i癟in, bu nesne 羹zerinde yetkiye gereksinimi var. Sonras覺nda UserB.Proc2, UserC.Table2 nesnesine erimek istediinde, UserA i癟in SELECT yetkisi denetlenmek durumunda. Bu senaryoda, UserB.Proc2 ve UserC.Table2 farkl覺 ownerlara sahip ve ownership zinciri k覺r覺l覺yor.
SQL Server 2005 bu senaryoyu ekil 1.4′te g繹r羹ld羹羹 羹zere olduk癟a kolaylat覺r覺yor. Bu senaryoda UserA, UserB.Proc2′yi 癟al覺t覺rmak istiyor ve SQL Serer UserA’n覺n UserB.Proc1 i癟in Execute yetkisinin olup olmad覺覺n覺 denetliyor. Eer UserB.Proc1 nesnesi, UserZ’nin contextinde 癟al覺t覺r覺lacak ekilde oluturulursa, UserB.Proc1 stored procedure’u UserC.Table1 nesnesine erimeye 癟al覺t覺覺nda SQL Server sadece ilemi ger癟ekletiriyor olarak kabul edilecek kullan覺c覺n覺n, yani bu 繹rnek i癟in UserZ’nin yetkilerini denetleyecektir. 襤lemi balatan kullan覺c覺 olan UserA i癟in SELECT yetkisi aranmayacakt覺r.
ekil 1.4 :: SQL Server 2005 execution context
Aa覺daki kod MyProc1 adl覺 bir stored procedure’覺n execution context’ini nas覺l deitirebileceimizi 繹rneklemektedir.
ALTER PROC MySchema.Proc1 WITH EXECUTE AS USER UserB
Bu ifade yeni WITH EXECUTE ifadesini kullanmaktad覺r. Burada MySchema i癟inde yer alan Proc1 adl覺 stored procedure UserB’nin context’inde 癟al覺t覺r覺lmak 羹zere g羹ncelleniyor. Bu ilemde bir kullan覺c覺 ad覺 belirtmemiz gerekiyor, bir rol ismi kullanam覺yoruz. Execution Context’te yap覺lan deiiklikler sys.sql_modules view’覺 arac覺l覺覺yla g繹r羹nt羹lenebilmektedir.
Daha Detayl覺 Yetki Y繹netimi
SQL Server 2005 繹nceki s羹r羹mlere g繹re 癟ok daha detayl覺 yetkilendirme yapmam覺za imkan veriyor. SQL Server 2005 ile birlikte pek 癟ok farkl覺 seviyede, farkl覺 yetkilendirmeler yap覺labiliyor. Yetkilendirmelerin uygulanabilecei seviyeler: sunucu, veritaban覺, ema, nesne ve principal eklindedir. SQL Server 2005′in gelimi yetkilendirme sisteminin arkas覺ndaki fikir, DBA’in kime hangi yetkilerin verildiini tam olarak kontrol edebilmesini ve m羹mk羹n olan en az yetki ile 癟al覺mas覺n覺 salamakt覺r. Yeni sistem, SQL Server’覺n mevcut rollerini ortadan kald覺rm覺yor. SQL Server 2000′de yer alan t羹m roller sorunsuz olarak yeni yetkilendirme sistemi ile bir arada 癟al覺may覺 s羹rd羹r羹yor.
GRANT, DENY ve REVOKE gibi temel yetkilendirme ifadeleri ge癟erliliklerini halen korumakta. SQL Server 2005′te farkl覺l覺k g繹steren bir nokta, ayn覺 yetkinin farkl覺 seviyelerde uygulanabilmesi. rnein, eer veritaban覺 seviyesinde bir yetkilendirme yap覺yorsan覺z, yapt覺覺n覺z yetkilendirme veritaban覺ndaki t羹m nesneleri etkileyecektir. Eer yetkilendirmeyi ema seviyesinde yaparsan覺z, yetkilendirme eman覺n i癟erdii t羹m nesneler i癟in uygulanacakt覺r. Tablo 1.1 SQL Server 2005′te yer alan baz覺 繹nemli yetkilendirmeleri listelemektedir. Sunucu yetkilendirmeleri sys.server_permissions view’覺, veritaban覺 yetkilendirmeleri ise sys.database_permissions view’覺 arac覺l覺覺yla g繹r羹nt羹lenebilir.
Password Policy Sistemi
SQL Server 2005′te yer alan bir dier 繹nemli g羹venlik 繹zellii ise password polic


