🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: alt.pl.comp.lang.csharp
Article #10224

Re: ASP .NET i apostrofy

#10224
From: Grzesiek G.
Date: Tue, 22 Nov 2005 09:38
50 lines
3295 bytes
j_marek napisał(a):
> W wiadomości: dlskpf$do8$1@news.onet.pl,
> Robert Winkler <winkel@NOSPAMpoczta.fm> napisał(a):
> 
>> Jak Selvin słusznie zauważył zastosowanie procedur gwarantuje Ci że
>> nikt nie podstawi Ci w parametrze żadnego szkodliwego kodu.
>> Warunkiem do tego jest oczywiście że po stronie serwera w procedurze
>> składowanej
>> nie będziesz łączył przekazywanych parametrów w jeden ciąg znaków
>> i nie będziesz go następnie wywoływał za pomocą sp_executesql
> 
> 
> Witam!
> 
> Właśnie gdzie wyczytałem, że sp_executesql w MS SQL chroni przed tym 
> problem bo pozwala na wykorzystanie parametrów nawet w przypadku 
> dynamicznego SQL po stronie serwera. Co innego EXECUTE. Natomiast jest 
> to mniej bezpieczne w stosunku do statycznego SQL-a bo wymaga prawa nie 
> tylko do samej procedury składowanej.
> 
> Owe artykuły techniczne znalazłem na stronie:
> http://www.sommarskog.se
> 
> Są tam podane przykłady, w których dynamiczny SQL jest dobrym pomysłem 
> ze względu na wydajność. Chodzi o dynamiczne wyszukiwanie danych --- 
> użytkownik podaje pola, po których następuje wyszukiwanie. Można 
> zbudować statycznego SQL-a z taką klauzulą WHERE:
> (Nazwa = @nazwa OR @nazwa IS NULL)
> 
> Ale jak twierdzi autor oznacza to brak użycia indeksów. O ile pamiętam 
> ponieważ plan zapytania jest układany w czasie kompilacji procedury 
> składowanej kiedy wartości parametrów nie są jeszcze znane. Być może 
> 2005 zrobić coś w tym kierunku.
> 
Plan wykonania układany jest w czasie pierwszego uruchomienia procedury, 
kiedy parametry są znane. Niestety, ten plan może nie być optymalny dla 
kolejnych wywołań procdedury przy innych parametrach. Po to zrobiono 
klauzulę WITH RECOMPILE, która powoduje wygenerowanie nowego planu 
wykonania przy każdym uruchomieniu. Źródłem moich informacji jest 
artykuł Kalen Delaney opublikowany w SQL Server Magazine, więc wydaje 
się wiarygodne.

Słyszałem, że w 2005 można część procedury oznaczyć klauzulą WITH 
RECOMPILE, co jest jakimś postępem do 2000 :-).

Pozdrawiam

-- 
Grzegorz Gruza
Odpowiadając usuń "spamerom_nie." z adresu!!!
Technical Details
Message-ID: <dlup03$6ip$1@nemesis.news.tpi.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
References: <dlsbld$9n9$1@news.onet.pl> <dlsc5c$bms$1@news.onet.pl> <dlsgbv$t1p$1@news.onet.pl> <dlshop$2cs$1@news.onet.pl> <dlsiip$5f9$1@news.onet.pl> <dlskpf$do8$1@news.onet.pl> <dltcbc$16mi$3@news2.ipartners.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
From: "Grzesiek G." <gruza@spamerom_nie.priv4.onet.pl>
Newsgroups: alt.pl.comp.lang.csharp
Subject: Re: ASP .NET i apostrofy
Date: Tue, 22 Nov 2005 10:38:24 +0100
Organization: tp.internet - http://www.tpi.pl/
Lines: 50
Message-ID: <dlup03$6ip$1@nemesis.news.tpi.pl>
References: <dlsbld$9n9$1@news.onet.pl> <dlsc5c$bms$1@news.onet.pl> <dlsgbv$t1p$1@news.onet.pl> <dlshop$2cs$1@news.onet.pl> <dlsiip$5f9$1@news.onet.pl> <dlskpf$do8$1@news.onet.pl> <dltcbc$16mi$3@news2.ipartners.pl>
NNTP-Posting-Host: hostr.bielbit.com.pl
Mime-Version: 1.0
X-Trace: nemesis.news.tpi.pl 1132652355 6745 195.117.206.2 (22 Nov 2005 09:39:15 GMT)
X-Complaints-To: usenet@tpi.pl
NNTP-Posting-Date: Tue, 22 Nov 2005 09:39:15 +0000 (UTC)
User-Agent: Mozilla Thunderbird 1.0.2 (Windows/20050317)
X-Accept-Language: pl, en-us, en
In-Reply-To: <dltcbc$16mi$3@news2.ipartners.pl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit