13 Şubat 2009 Cuma

mssql de gizli tablolar

mssql de sysobjectse ulaşmak demek her tablo adına ulaşmak demek değildir.
db admin bazı tabloların sysobjectsde görünmemesini sağlayabilir fakat bu tabloyu okuyamayacağınız manasına gelmez.

misal "select top 1 name from sysobjects where name like '%admin%'" yazdığınızda admin tablosunu vermez fakat "select top 1 asd from admin" yazdığınızda asd diye column bulunamadı, ki bu admin tablosu doğru fakat kolon yanlış demektir.

yani admin tablosu var fakat sysobjects de görünmüyor. peki bu gizli tabloları nasıl çekebiliriz. bilginin gizliliği prensibim olduğu için kodu vermeyeceğim fakat mantığını anlatabilirim.

db admini tablo adlarını saklasa bile kolon adlarını saklayamaz veya saklamaz diyelim, çünkü kolon adlarından yola çıkılacağını hesaplamaz.

peki napabiliriz? syscolumns dan yola çıkıp username password gibi kolonları bulup sonra bu kolon adlarını doğru sql cümlesinde kullanarak o kolon adının tablosunu öğrenebiliriz. tablo sysobjects de görünmese bile biz adını öğrendikten sonra bi önemi yoktur ;)

...

burayı çok boşladım galiba la, yazmamı istediğiniz bişey varmı bari söyleyinde ona göre yazam :)