logo


Welcome Guest! To enable all features please Giriş or Kayıt.

Bildirim

Icon
Error

Ayarlar
Son mesaja git Go to first unread
barberouge  
#1 Gönderildi : 4 Ağustos 2016 Perşembe 15:31:20(UTC)
barberouge

Sıralama: Newbie

Gruplar: Registered
Katılan: 4.08.2016(UTC)
Mesajlar: 5
Turkey

merhaba, kullanmış olduğumuz programın hazır raporları var ve bu raporların sorgularını yedeğe alıp sql de çalıştırıyorum.
takıldığım bir kaç konu hakkında bilgi vermenizi rica ederim.

1- Programda aşağıdaki gibi bir sorgu var. Yedekte bu raporu çalıştırmak istediğimde " *= " işareti yüzünden çalışmıyor, " *= " işareti yerine = yapsam çalışıyor. " *= " işaretinin sql deki karşılığı nedir?

SELECT a.MUST_KODU, a.MUST_ADI, a.FAT_ADRESI1,a.FAT_ADRES2,b.SEHIR_ADI FROM MUSTERILER a, D00000.SEHIRLER b, MUSTERI_DIGER d
WHERE a.FAT_SEHIR_ID*= b.SEHIR_ID and a.MUSTERI_ID *= d.MUSTERI_ID ORDER BY a.MUST_ADI

2- Aşağıdaki sorgu stok listesini getiriyor. Aşağıdaki sorgu da where 1=1 ne işe yarıyor, olmasa ne olurdu. Bu kısmı silsem de 17878 adet sonuç geliyor, silmesem de . where 2=2 yazsam da 17878 sorgu getiriyor. where 1=0 yazarsam gelmiyor. Biraz araştırdım, SQL Injection diye bir olay var ama bu sorguyla ilgisini anlayamadım.

select s.*,
(SELECT TOP 1 L.ADI FROM FIYAT_SATIRLARI FS,FIYAT_LISTELERI L
WHERE FS.SHD_ID=S.STOK_ID AND L.FIYAT_LISTESI_ID=FS.FIYAT_LISTESI_ID) FIYAT_LISTESI_ADI
from

( select ss.STOK_SINIF_KODU, s.*
from stok s, STOK_SINIFLARI ss where s.STOK_SINIF_ID = ss.STOK_SINIF_ID
union all
select '' STOK_SINIF_KODU, s.* from stok s where STOK_SINIF_ID <= 0
) s
where 1=1

order by s.STOK_KODU


mehmetzekikir  
#2 Gönderildi : 5 Ağustos 2016 Cuma 14:54:36(UTC)
mehmetzekikir

Sıralama: Administration

Gruplar: Administrators
Katılan: 6.05.2014(UTC)
Mesajlar: 670

19 Kere Teşekkür Etti.
152 Mesajına Toplam 253 Kere Teşekkür Edildi.
Originally Posted by: barberouge Go to Quoted Post
merhaba, kullanmış olduğumuz programın hazır raporları var ve bu raporların sorgularını yedeğe alıp sql de çalıştırıyorum.
takıldığım bir kaç konu hakkında bilgi vermenizi rica ederim.

1- Programda aşağıdaki gibi bir sorgu var. Yedekte bu raporu çalıştırmak istediğimde " *= " işareti yüzünden çalışmıyor, " *= " işareti yerine = yapsam çalışıyor. " *= " işaretinin sql deki karşılığı nedir?

SELECT a.MUST_KODU, a.MUST_ADI, a.FAT_ADRESI1,a.FAT_ADRES2,b.SEHIR_ADI FROM MUSTERILER a, D00000.SEHIRLER b, MUSTERI_DIGER d
WHERE a.FAT_SEHIR_ID*= b.SEHIR_ID and a.MUSTERI_ID *= d.MUSTERI_ID ORDER BY a.MUST_ADI

2- Aşağıdaki sorgu stok listesini getiriyor. Aşağıdaki sorgu da where 1=1 ne işe yarıyor, olmasa ne olurdu. Bu kısmı silsem de 17878 adet sonuç geliyor, silmesem de . where 2=2 yazsam da 17878 sorgu getiriyor. where 1=0 yazarsam gelmiyor. Biraz araştırdım, SQL Injection diye bir olay var ama bu sorguyla ilgisini anlayamadım.

select s.*,
(SELECT TOP 1 L.ADI FROM FIYAT_SATIRLARI FS,FIYAT_LISTELERI L
WHERE FS.SHD_ID=S.STOK_ID AND L.FIYAT_LISTESI_ID=FS.FIYAT_LISTESI_ID) FIYAT_LISTESI_ADI
from

( select ss.STOK_SINIF_KODU, s.*
from stok s, STOK_SINIFLARI ss where s.STOK_SINIF_ID = ss.STOK_SINIF_ID
union all
select '' STOK_SINIF_KODU, s.* from stok s where STOK_SINIF_ID <= 0
) s
where 1=1

order by s.STOK_KODU






Merhabalar

1 sorunuzdaki *= diye birşey ben hiç görmedim açıksacı bende bilmiyorum ama += diye bir olay var, bu joinin tipine karar veriyor + basta ise left join sonda ise right join oluyor diye hatırlıyorum. Bu eski bir yazış şekli , artık onun yerine inner join left join yazıyoruz

2 Bunun sebebi su o kodun sonuc döndürmesini istemediğiniz zaman kodu silmek yerine 1=0 yazarak kolaylıkla sonuç döndürmemesini sağlıyorsunuz
istediğiniz kadar 1=0 yazın adam gelir yanına | 1=1 yazar yine injectiona yakalanırsınız

Sql Server 2016 Eğitimiz 19 Mayıs tarihinde başlayacaktır. 32 Saat Olup Ücret 1450 TL + KDV'dir. Kayıt ve ayrıntılar için tıklayınız

twitter.com/dbakademi
Dua ve teşekkür en büyük servetlere bedel...


Bu konudaki kullanıcılar
Guest
Forumu Atla  
Bu foruma yeni konular postalayamazsınız.
Bu forumda ki konulara yeni posta gönderemezsiniz.
Bu forumdaki postalarınızı silemezsiniz.
Bu forumdaki postalarınızı düzenleyemezsiniz.
Bu forumda anketler yaratamazsınız.
Bu forumdaki anketlere oy veremezsiniz.