Geri Dön   Forum Ti > Yardım ve Destek > Yazılım
Üye Ol Üye Listesi Takvim Forumları Okundu İşaretle

Yazılım İşletim sistemi ile ilgili bilgiler veya işe yarayan ipuçları bulabilir,sorunlarınızı giderebilirsiniz. Yada bildiklerinizi başkalarınada öğretebilirsiniz..

Cevap
 
Konu Araçları
Eski 24.05.2007   #1 (permalink)
Kovuldu
 
Katılma Tarihi: Mayıs 2007
Nereden: t.c
Yaş: 22
Mesajlar: 66
Thumbs up [Döküman] Yazılım Güvenliği

SQL Server 2005’te sistem metadatasina erisim ve güvenlik mimarisi

Data bildiginiz gibi, bir veritabaninin tablolarinda dogrudan tutulan bilgiye deniyor. Ya da veri… Metadata ise, tablolarin içindeki asil bilgiler degil, bu bilgileri tutmayla ilgili bilgilerdir. Yani veri hakkindaki veriler. Birkaç örnek sayacak olursak: Bir veritabanindaki tablo ya da görüntülerin (view) sayilari, bir tablonun kolonlari hakkinda bilgiler, bir tablo için tanimli kisit ve indekslerle ilgili bilgiler, kullanicilar ve girislerle ilgili bilgiler gibi konular hep metadataya girer.
SQL Server 2000, SQL-92 standartlarina uygun olarak metadaya erisim için INFORMATION_SCHEMA görüntüleri, sunucu ve veritabani seviyesinde sistem tablolari ve sistem yüklü yordamlari ile pek çok olanak sunuyordu. Ama birtakim sorunlar da vardi:
• Her ne kadar tavsiye edilmese de, SQL Server 2000 sistem nesnelerinde dogrudan degisiklik yapilmasina izin veriyordu.
• Bir kullanici, bir nesneye erisim izinleri olmadigi halde o nesne ile ilgili metadataya yukarida bahsedilen yöntemlerle erisebiliyordu.
• Sistem tablolarindaki karmasik gösterimleri sökmek için veritabani yöneticilerinin ve gelistiricilerinin hayli çaba sarf etmesi gerektigi durumlar oluyordu.
• Son olarak, yükseltmeler ve servis paketleri sistem nesnelerinin yok edilip tekrar olusturulmasini gerektiriyordu. Bu hem fazla zaman alan bir yöntemdi, hem de bir servis paketini geri almayi imkansizlastirmasa da çok zorlastiriyordu.
SQL Server 2005’te metadata erisimi bastan düsünülmüs ve güvenlik unsurlari da göz önünde bulundurularak tamamen yeniden tasarlanmistir. Resource adli yeni bir veritabaninin kullanilmasi, sistem metadatasina erisimle ilgili kisitlamalar ve semalar bu yeni tasarimin önemli unsurlari olarak karsimiza çikar.

Resource veritabani

Resource, bu sürümle kullanilmaya baslayan yeni bir veritabanidir. SQL Server 2005’e dahil tüm sistem nesnelerini içerir, gizlidir ve sadece okunabilirdir. Bu bilgiler eskiden Master veritabaninda yer alirdi. Resource veritabaninda yer alan sistem nesneleri, fiziksel olarak burada yer almakla birlikte tüm veritabanlarinda da mantiksal olarak var görünürler. Bu sistem nesnelerine veritabanlarinda sys adli semada erisebiliriz. Resource veritabani grafiksel yönetim araçlarinda ya da sys.databases katalog görüntüsüne eristiginizde gözükmez. Fiziksel veritabani dosyalari ise (mssqlsystemresource.mdf ve mssqlsystemresource.ldf) master veritabani dosyalarinin yer aldigi klasörde yer alirlar. Resource veritabani dosyasinin yerini ya da ismini degistirirseniz, SQL Server baslamaz. Ayrica performans kayiplarinin olusmamasi ve sürüm güncellemelerde olasi sorunlar yasamamak için, Resource veritabanini NTFS dosya sisteminde sikistirilmis ya da sifrelenmis klasörlere koymayin.
Dikkat edilmesi gereken bir nokta, Resource veritabaninin herhangi bir kullanici verisi ya da kullanici metadatasi içermemesidir. Bir SQL Server kurulumuna iliskin sistem seviyesindeki bilgiler yine Master veritabaninda tutulur. Bu sebeple, (dogrudan Resource veritabanina yönelik Microsoft’un yönlendirdigi özel bir çalisma yapilmadikça) Resource veritabanini yedeklemek gerekli degildir.
Resource veritabani SQL Server’in yeni bir sürümüne terfi etmeyi çok daha hizli ve kolay yapabilmeyi mümkün kilar. Önceki sürümlerde terfi, sistem nesnelerini yok etmeyi ve yeniden olusturmayi gerektirirdi. Resource veritabani tüm sistem nesnelerini içerdiginden, bir terfi sadece Resource veritabaninin yeni bir sürümünü yerel sürücüye kopyalamakla mümkündür. Bu ayni zamanda, bir yükseltmeyi geri almak için tüm yapilmasi gerekenin yeni Resource veritabanini istenen sürümdeki Resource veritabani ile geri degistirmek olmasini getirir.
Resource veritabaninin sürümünü ve en son ne zaman güncellendigi bilgisini almak için su sorgulari kullanabilirsiniz:
SELECT SERVERPROPERTY(‘ResourceVersion’);
SELECT SERVERPROPERTY(‘ResourceLastUpdateTime’);
Bu sorgular benim sistemimde, 9.00.1399 ve xxxx degerlerini veriyor.
Resource veritabanina erismenin tek yolu, SQL Server’i –m baslangiç parametresini kullanarak tek-kullanici admin modunda baslatmak ve sonra da USE mssqlsystemresource SQL ifadesini kullanmaktir. Bunu yaptiktan sonra, master veritabanindaki ve herhangi bir kullanici veritabanindaki temel sistem tablolarini dogrudan sorgulayabilirsiniz. Bunlar aslinda master’da ya da kullanici veritabanlarinda dogrudan yer almazlar. Sistem tablolarinin yerine geriye dönük destek amaçli görüntüler kullanilmistir. Asil temel tablolar Resource veritabanindadir.

Metadata erisimi ve görünürlük

SQL Server 2005’teki yeni metadata mimarisi sunlari saglar:
• Sistem metadatasina erismek için basit, tutarli, güvenli ve etkin bir yol.
• Sistem tablolarina dogrudan güncellemenin engellenmesi
• Olabilecek en iyi geriye dönük destek
• Metadataya erisimin izinler bazinda kisitlanmasi
Bunu saglamak için SQL Server 2005’de uygulanmis çesitli yöntemlerden bahsetmeye baslayalim:


Katalog görüntüleri
Eski sürümlerde yer alan tüm sistem tablolari bu sürümde geriye dönük destek amaçli görüntüler olarak sunulurlar ve kullanimlari tavsiye edilmez. Bunun yerine yeni bir kavram olarak katalog görüntüleri getirilmistir. Bu görüntüler sistem metadatasina erisim için tavsiye edilen yöntemdirler. SQL Server 2005’te 4 degisik çesit görüntü vardir: Katalog görüntüleri, geriye dönük destek görüntüleri, DMVler (dynamic management views, dinamik yönetim görüntüleri) ve information_schema görüntüleri. Katalog görüntülerini kullanmak en etkin ve tavsiye edilen metadata erisim seklidir ve Service Broker gibi yeni özelliklerle iliskin olarak zaten kullanilabilecek tek yöntemdir. Geriye dönük destek için saglanan görüntüler ve information_schema görüntüleri SQL Server 2005’le birlikte gelen yeni özellikler için gelistirilmemistir. Adi üstünde, sadece önceki sürümlerdeki kullanimi destekleyen ve gelecegi konusunda da süphe duymakta hakli olacaginiz olanaklardir bunlar.
Yaklasik 286 sistem metadata görüntüsü vardir ve bu sayi katalog görüntülerini, DMVleri, information_schema görüntülerini, geriye dönük destek görüntülerini içerir. Asagidaki sorguyla tüm sistem metadata görüntülerinin bir listesini alabilirsiniz:
SELECT * FROM sys.all_views
WHERE is_ms_shipped = 1
ORDER BY [name];
Tüm sistem metadata nesneleri sys veya INFORMATION_SCHEMA semalarina aittir. Katalog görüntülerinde isimlendirme standartlari vardir. sys.% görüntüleri bir kullanicinin metadatasini, sys.system_% görüntülerini sistem nesnelerini, sys.all_% nesneleri de sistem nesneleri ve kullanici nesnelerinin birlesimini verir. sys.server_% görüntüleri ise sunucu seviyesinde metadatayi tanimlar.
Örnek olarak su SQL ifadelerini düsünelim:
USE [AdventureWorks];
SELECT * FROM sysobjects ORDER BY [name];
-- Bu kullanim, eskiye benzemekle birlikte sysobjects bir sistem tablosu degil, geriye dönük destek görüntüsüdür.
SELECT * FROM dbo.sysobjects ORDER BY [name];
SELECT * FROM sys.sysobjects ORDER BY [name];
-- Bu geriye dönük görüntüyü dbo ya da sys semasi altindan kullanabiliriz.
SELECT * FROM sys.objects ORDER BY [name];
-- Bu sürümle gelen katalog görüntüsü kullanilmaktadir.
SELECT * FROM sys.all_objects ORDER BY [name];
SELECT * FROM sys.system_objects ORDER BY [name];
-- Bu iki sorguda da yine bu sürümle gelen yeni görüntüler kullanilmaktadir. Bunlarin sistem tablolari gerçekte Resource veritabanindadir, ama herhangi bir veritabanindan da bu görüntüler yoluyla Resource veritabanindaki metadata bilgilerine erisme imkani bulunmaktadir.
Katalog görüntülerinde daha temel olan tablolar az sayida kolon ama fazla sayida satir içerir. Daha özellesmis tablolarda ise daha az satir olmakla birlikte bunlarla ilgili daha fazla kolon yer alir. Mesela sys.objects tablosu sys.tables’a göre daha fazla satir döndürür. Ama bu satirlarla ilgili verilen bilgi sayisi (yani kolonlarin sayisi) azdir. Oysa sys.tables sadece tablolarla ilgili bilgi verdiginden daha az satir içerir ve her bir satirla ilgili bilgi sayisi çok daha fazladir.

Katalog güvenligi

SQL Server 2005 metadata güvenligi konusunda ANSI SQL-99 standartlarina göre bir çözüm getirmistir: Erisime sahip oldugunuz nesneler için metadataya da erisebilirsiniz, erisimine sahip olmadiginiz nesnelerin metadatalari da size bos küme olarak döner. Metadata erisiminin önüne bir güvenlik katmani eklenmistir ve tüm metadata sorgulari bu katmandan geçer. Böylelikle erisime sahip olmadiginiz bir nesne için metadata bilgilerine de erisemezsiniz.
Önceki sürümlere göre güvenlik adina büyük bir iyilestirme oldugunu söyleyebiliriz. Verinin kendisine olmasa bile, metadaya o veriyle ilgili yetkisi olmayan kisilerin erismesi, olasi güvenlik sorunlari açisindan sakincali bir durumdu.
sa hesabi tüm sistem metadatasina, dbo da tüm veritabani metadatasina erisebilir. Bazi bilgiler de tüm veritabani kullanicilari tarafindan hala erisilebilir durumdadir. Bunlar tipik olarak dosya gruplari gibi, haklarinda izin atamasi yapilamayan nesnelerle ilgili metadatalardir.

Allow updates seçenegi

Sistem tablolarina dogrudan güncelleme desteklenmedigi için, “allow updates” sistem ayar seçenegi SQL Server 2005’te anlamsizdir.

Kullanici/Sema ayrimi

SQL Server’in güvenlik ve yönetim açisindan 2005’teki en önemli degisikliklerinden biri de kullanici ve sema kavramlarinin birbirlerinden ayrilmasidir. ANSI SQL-92 standartlarina uygun sekilde, semanin amaci bir isim alani gibi davranarak iliskili veritabani nesnelerini bir arada tutmak ve isim çakismalarini önlemektir. Tüm satis nesnelerini, ya da tüm insan kaynaklari nesnelerini bu is için olusturulmus bir sema altina toplayabilirsiniz. Ya da eger iki tablonuzun isminin ayni olmasi gerekiyorsa, farkli semalar altinda olmak sartiyla bu kullanim size izin verir.
SQL Server’in önceki sürümlerinde kullanicilar isim alani olusturmak ve nesnelerde isim çakismasini önlemek amaciyla kullanilirdi. Bir nesneyi tam tanimlayarak isimlendirmede sunucu isminden sonra veritabani ismi ve kullanici ismi kullanilirdi. (myServer.Northwind.dbo.products gibi). Kullanicilarin böyle sema yerine degerlendirilmesi önemli yönetim sikintilarina sebep olabiliyordu.
Bir kullaniciyi silmek istediginizi düsünün. Bunu yapmadan önce o kullanicinin sahip oldugu tüm nesneleri ya silmeniz ya da sahipligini baska kullanicilara devretmeniz gerekirdi. Ilki pek tercih edilen bir çözüm degildir. Ikincisi ise genellikle, veritabanina erisen kimi uygulama kodlarinin degistirilmesini gerektirir ki, bazi durumlarda çok zaman ve kaynak kaybina yol açabilir. Bu sebeple de nesnelerin dbo altinda yaratilmasi tercih edilir ki, bu durumda da sema islevi ortadan kalkmis olur.
SQL Server 2005 için kullanicilar ve semalar birbirinden ayri iki seydir. Semalar kendileriyle ilgili güvenlik izinleri atanan nesnelerken, kullanicilar neye nasil erisilecegi izinlerle belirlenen varliklardir. Artik nesne isimleri sahip.nesne seklinde degil sema.nesne seklindedir. Sema olusturmak için CREATE SCHEMA diye yeni bir DDL ifadesi kullanilir ve semalarin sahipleri veritabani kullanicilaridir. Nesne olusturma iznine sahip kullanicilar semalarda nesneler olusturabilirler. Bir kullaniciyi silmek için artik tüm yapmaniz gereken, sahip oldugu semalarin sahipligini bir baska kullaniciya devretmektir. Yüzlerce nesne yerine sadece bir iki semanin sahipligini degistirmek isinizi çözecektir. Veritabanini kullanan uygulamalarda bir degisiklik yapmaya gerek olmaz, çünkü semanin kullanicisi degisse de sema ismi ayni kalacaktir. Nesne isimlendirirken, nesnenin kime ait oldugu, uygulamalar için önemli degildir.
Her kullanicinin isim çözümleme için kullanilan varsayilan bir semasi vardir. Yeni kullanici için varsayilan bir sema belirtmezseniz, SQL Server varsayilan sema olarak dbo’yu kullanir. Bu kullanicinin yaptigi bir sorguda eger nesne isminin tamamiyla belirtilmemisse, SQL Server nesneyi kullanicinin varsayilan semasinda arar. Eger burada bulamazsa, dbo semasina bakar.
Tüm bu yeni özelliklerle, SQL Server’in güvenlik alaninda da 2005’te önemli yenilikler getirdigini görüyoruz. Tabii güvenlikle ilgili gelen yeni özellikler sadece bunlar degil..


döküman sanırım biraz eski ama işe yarayabilir ;]
Chernobile Şuanda Forumda Değil   Alıntı yaparak cevapla
Cevap


Şu Anda Konuyu İnceleyen Aktif Kullanıcılar: 1 (0 üye ve 1 misafir)
 
Konu Araçları


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
MAC Adresi ve Yapılabilecekler (Döküman) Myst3rious İnternet & Ağ Bağlantıları 0 31.07.2007 22:35
Lise 1-2-3 Karışık Döküman eray553 Liseler 1 19.05.2007 19:18
vßullettin Destek [döküman] PiLoT Web Tasarım 0 03.07.2006 10:56


Şu anki forum saati: 09:55.


cnt hizmet sağlayan firma
ForumTi.com'un yapımı ve yayınlanması CNT'ye aittir.
Sitedeki içerikleri foruma ücretsiz şekilde üye olabilen ziyaretçiler oluşturur. Bu içeriklerin sorumluluğu yazana aittir.
Eğer yasak ve aykırı içerik tespit edilirse site yöneticilerine bu konular bildirilir ve kaldırılır. Site yönetimi haberdar edildiğinde sonuç alınamaz ise servis sağlayıcı CNT'ye bildiride bulunabilirsiniz.
vBulletin® v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd. Search Engine Friendly URLs by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265