Zine.net online

Witaj na Zine.net online Zaloguj się | Rejestracja | Pomoc
w Szukaj

dev2dev

Dziennik pokładowy MSSQL 2008 (wpis nr 0x0007) Policy Based Management – to jest pyszne!

Po przejściowych problemach ze startem w PBM rozwiązanych “With a Little Help from My Friends” - co można prześledzić tutaj - wypłynąłem na szerokie wody możliwości tworzenia polis w MSSQL 2008.

Na początek kilka blogów, które warto subskrybować przez swój czytnik RSS:

Co to jest polisa? Według encyklopedii to “tradycyjny dokument, którym ubezpieczyciel potwierdza zawarcie umowy ubezpieczenia”. W MSSQL polisa (policy) jest również zawarciem “umowy” od której zawierający oczekuje, że zapewni mu ona zdrowie (health state) jego serwerów SQL, w szeregu różnych aspektów (facets). Gdzie znajduje się zarządzanie polisami w MSSQL 2008? W zakładce Management->Policy Management. W zakładce Facets można zobaczyć predefiniowaną listę aspektów, co do których można budować warunki zapewnienia wymaganego przez wprowadzającego stanu, który uważa się za satysfakcjonujący do spełnienia oczekiwanych przez niego warunków bezpieczeństwa (tak jak go rozumie). Klikając podwójnie na wybrany aspekt można zobaczyć listę warunków, które można w danym aspekcie brać pod uwagę. Aby ułatwić start rozpoczynającemu budowanie własnych polis użytkownikowi istnieje możliwość importowania predefiniowanych polis. Można to zrobić wybierając prawym klawiszem opcję Policies->Import Policy…

image

Klikając na klawisz … obok pola Files to import uzyskujemy

image

i na początek DatabaseEngine

image

Warto wybrać jakąkolwiek polisę, zaimportować ją i obejrzeć jak wyglądają warunki (zakładka Conditions) oraz jak jest zbudowana sama polisa wybierając dla nich opcję Properties.

Polisy to świetne narzędzie dla DBA do sprawdzania warunków bezpieczeństwa stawianych środowisku produkcyjnemu. Ale nie mniej istotne może być jej zastosowanie do tworzenia środowiska zespołów deweloperskich. Budując odpowiednie polisy można wymusić stosowanie konwencji tworzenia w projekcie nazw tabel, procedur, widoków etc. W tym przypadku najlepiej sprawdza się wartościowanie polisy w trybie On change – prevent. Powoduje ona odpalenie trigger’a w celu niedopuszczenia do naruszenia zasad polisy. W ten sposób można również wymusić określanie założonej schema przy tworzeniu procedur składowanych. W tym celu uruchamiamy opcję Conditions->New Condition…

image

Równocześnie życzymy sobie aby polisa obowiązywała w bazie TEST:

image

Następnie tworzymy nową polisę uruchamiając opcję Policies->New Policy…

image

Mamy polisę, która wymusza stosowanie określonej schema dla nowo tworzonych procedur składowanych w bazie TEST. Ustawiony został tryb ewaluacji na On change – prevent, ma ona włączone Enabled więc spodziewamy się, że nie uda się nikomu stworzyć procedury, która łamię tę polisę. Sprawdzamy to:

image

…i zdziwienie. Dlaczego polisa nie zadziałała? Dlatego, że warunek na nazwę bazy danych pochodzi od aspektu Database, który nie przywiduje obsługi wartościowania On Change. Takie wartościowanie zapewnia aspekt Database Options ale nie może on być zastosowany do Against Targets. Taka łyżka dziegciu w beczce miodu…

Rozwiązaniem może zastosowanie in Every Database jako Against Targets do wartościowania polisy.

i wówczas:

image

Ale jest to rozwiązanie “brute force”. Czy można to zrobić lepiej? Odpowiedź jest negatywna (jeżeli chodzi o zablokowanie możliwości stworzenia nazwy procedury składowanej niezgodnej ze zdefiniowaną dla niej polisą w określonej bazie danych). Ale zawsze można wykonać wartościowanie On demand przyjmując, że polisa ma obejmować tylko jedną bazę tak jak założyliśmy na początku. Jest to zabezpieczenie post factum ale zawsze jest to coś niż nic.

Ale zdecydowanie najciekawszą właściwością jest możliwość bufowania własnych warunków w oparciu o zapytania będące podstawą wartościowania polis. Najciekawszym zastosowaniem może być zbudowanie swego własnego warsztatu polis do liczników wydajności dostarczanych przez widoki DMV. Dla przykładu zbudujemy warunek, który będzie postawą dla polisy, która będzie wartościowała czy średni czas wykonania procedury składowanej jest większy od założonej wartości (chore) lub mniejszy (zdrowe).

Przy budowania wartościowania w oparciu o własne zapytania należy pamiętać, że wartościowanie może się odbywać w kontekście aspektu dla którego warunek został zbudowany oraz aby to miało sens należy wykorzystać parametry:

  • @@ObjectName – nazwę obiektu branego pod uwagę przy wartościowaniu w kontekście danego aspektu,
  • @@SchemaName – schema obiektu branego pod uwagę przy wartościowaniu w kontekście danego aspektu.

Zbudujemy funkcję wartościującą w oparciu o wykorzystanie wbudowanej PBM funkcji ExecuteSql. Zainteresowanych szczegółami wywołania funkcji ExecuteSql, którą wykorzystam w przykładzie odsyłam tutaj.

Wartościowane będzie miało dwa warunki:

  1. Pierwszy warunek będzie wyliczał średni czas wykonania procedury składowanej i jeżeli przekroczy ona pewien próg będzie zwracał 0 i w przeciwnym wypadku 1, czyli:
    ExecuteSql('Numeric', 'select case when sum(total_elapsed_time) / sum(execution_count) > 100 then 0
    else 1 end avg_time
    from sys.dm_exec_query_stats qs
    cross apply sys.dm_exec_sql_text(sql_handle) st
    inner join sys.all_objects o on st.objectid = o.object_id
    where o.name = @@ObjectName
    group by o.name')
  2. Drugi warunek będzie sprawdzał istnienie przypadku gdy procedura składowana nie była wywoływana wcale, w związku z czym nie nie posiada zarejestrowanych liczników:

    IsNull(ExecuteSql('Numeric', 'select case when sum(total_elapsed_time) / sum(execution_count) > 100 then 0
    else 1 end avg_time
    from sys.dm_exec_query_stats qs
    cross apply sys.dm_exec_sql_text(sql_handle) st
    inner join sys.all_objects o on st.objectid = o.object_id
    where o.name = @@ObjectName
    group by o.name'), 0)

Teraz należy wbudować to w warunki dla polisy:

image

A następnie należy zbudować polisę w oparciu o ten warunek:

image

Pozostało teraz wykonać Evaluate dla tej polisy i analizować podane “na tacy” wyniki, które polisa uznała za chore. 

Czego mi brak? Możliwości parametryzowania warunków (poza wymienionymi dwoma). Co mi sie nie podoba? Wprowadzenie kolejnego, jeszcze innego sposobu przekazywania parametrów. Poza ODBC, OLEDB, T-SQL, SSIS teraz do funkcji PBM trzeba podawać w sposób, który kojarzy się z globalnymi zmiennymi T-SQL. Ale bilans jest mimo wszystko na plus.

Opublikowane 29 stycznia 2009 17:41 przez marekpow

Powiadamianie o komentarzach

Jeżeli chciałbyś otrzymywać email gdy ta wypowiedź zostanie zaktualizowana, to zarejestruj się tutaj

Subskrybuj komentarze za pomocą RSS

Komentarze:

 

brejk said:

Jak zawsze dociekliwy i żądny wyczerpania tematu :-) Tak trzymaj, Marek. Z niecierpliwością czekam na serię o Service Brokerze i na finalną wersję Service Broken. I oczywiście na sesyjkę na PLSSUG ;-)

stycznia 29, 2009 21:13
 

king said:

<P>This was spoken in such <a href="http://www.burberryoutletstore.com.co/"><STRONG>burberry outlet</STRONG></a> a <a href="http://www.juicycoutureoutlet.com.co/"><STRONG>juicy couture outlet</STRONG></a> melancholy tone <a href="http://www.reebok-outlet.in.net/"><STRONG>reebok outlet</STRONG></a> that I <a href="http://www.oakleysunglasses.ar.com/"><STRONG>oakley sunglasses</STRONG></a> really began <a href="http://www.the-north-face.fr/"><STRONG>north face</STRONG></a> to pity the man; <a href="http://www.abercrombieand-fitch.org.uk/"><STRONG>abercrombie and fitch uk</STRONG></a> not so, however, my companion. <a href="http://www.thenorthfaceoutlet.in.net/"><STRONG>north face outlet</STRONG></a> “Flatter not yourselves,” <a href="http://www.insanityworkout.in.net/"><STRONG>insanity workout</STRONG></a> said he to the monk, “with having <a href="http://www.sac-burberry-pascher.fr/"><STRONG>burberry pas cher</STRONG></a> saved <a href="http://www.mcmhandbags.net/"><STRONG>mcm handbags</STRONG></a> the truth; <a href="http://www.nike-airmax.nl/"><STRONG>nike air max</STRONG></a> had <a href="http://coachofficialsite.blog.com/"><STRONG>coach outlet</STRONG></a> she <a href="http://www.prada-handbags.in.net/"><STRONG>prada handbags</STRONG></a> not found other defenders, in your <a href="http://www.nikerosherun.net/"><STRONG>nike roshe run</STRONG></a> feeble hands <a href="http://www.p90x-workout.us.com/"><STRONG>p90x workout</STRONG></a> she must <a href="http://www.newbalance-shoes.in.net/"><STRONG>new balance shoes</STRONG></a> have perished. By admitting into the Church <a href="http://www.scarpe--hoganoutlet.it/"><STRONG>hogan outlet</STRONG></a> the name of her <a href="http://www.nikeair-huarache.co.uk/"><STRONG>nike huaraches</STRONG></a> enemy, <a href="http://www.nike-roshe-run.fr/"><STRONG>nike roshe</STRONG></a> you have admitted the <a href="http://www.longchamphandbagsoutlet.us.com/"><STRONG>longchamp outlet</STRONG></a> enemy himself. <a href="http://www.longchamp-outlet.in.net/"><STRONG>longchamp outlet</STRONG></a> Names are <a href="http://www.instylerionicstyler.us.com/"><STRONG>instyler</STRONG></a> inseparable from things. If the <a href="http://www.coachfactory-outletonline.in.net/"><STRONG>coach outlet</STRONG></a> term sufficient grace <a href="http://www.hollister-abercrombie.es/"><STRONG>hollister</STRONG></a> be <a href="http://www.converse-allstar.it/"><STRONG>converse</STRONG></a> once established, it will <a href="http://www.oakleysunglassesoutlet.us.org/"><STRONG>oakley sunglasses wholesale</STRONG></a> be vain for you <a href="http://www.oakley--sunglasses.com.co/"><STRONG>oakley sunglasses</STRONG></a> to protest that <a href="http://www.nikeairmaxa.co.uk/"><STRONG>nike air max uk</STRONG></a> you <a href="http://www.supra--shoes.com/"><STRONG>supra shoes</STRONG></a> understand by <a href="http://www.nikeairmaxinc.co.uk/"><STRONG>nike air max uk</STRONG></a> it a grace which <a href="http://www.mulberryhandbags-outlet.org.uk/"><STRONG>mulberry uk</STRONG></a> is not sufficient. <a href="http://www.lululemonoutlets.in.net/"><STRONG>lululemon</STRONG></a> Your <a href="http://www.celine-handbags.org/"><STRONG>celine handbags</STRONG></a> protest will be held inadmissible. <a href="http://www.nikeair-max.net/"><STRONG>nike air max</STRONG></a> Your <a href="http://www.lunette-oakley-pascher.fr/"><STRONG>oakley pas cher</STRONG></a> explanation would <a href="http://www.hollister-sale.org.uk/"><STRONG>hollister uk</STRONG></a> be <a href="http://www.louboutinscarpe.it/"><STRONG>louboutin</STRONG></a> scouted <a href="http://www.rayban--occhiali.it/"><STRONG>ray ban</STRONG></a> as odious in <a href="http://www.hermesbirkinbags.com.co/"><STRONG>hermes belt</STRONG></a> the <a href="http://www.borse--gucci.it/"><STRONG>gucci</STRONG></a> world, where <a href="http://www.montrepas-cher.fr/"><STRONG>montre pas cher</STRONG></a> men speak more ingenuously <a href="http://www.katespade-handbags.in.net/"><STRONG>kate spade</STRONG></a> about <a href="http://www.marcjacobs.us.org/"><STRONG>marc jacobs</STRONG></a> matters of <a href="http://www.lancelpascher.fr/"><STRONG>lancel</STRONG></a> infinitely <a href="http://www.herveleger.us/"><STRONG>herve leger</STRONG></a> less moment. <a href="http://www.sac-longchamp-pas-cher.fr/"><STRONG>sac longchamp pas cher</STRONG></a> The Jesuits <a href="http://www.hollister--canada.ca/"><STRONG>hollister</STRONG></a> will gain a triumph — it <a href="http://www.timberland-paschere.fr/"><STRONG>timberland pas cher</STRONG></a> will be their <a href="http://www.ferragamo-shoes.net/"><STRONG>ferragamo shoes</STRONG></a> grace, <a href="http://www.nikeair-force.fr/"><STRONG>nike air force</STRONG></a> which is sufficient in fact, and not <a href="http://www.christian-louboutin-shoes.in.net/"><STRONG>christian louboutin shoes</STRONG></a> yours, which is <a href="http://www.newbalancesoldes.fr/"><STRONG>new balance</STRONG></a> only so in <a href="http://www.chiflatiron.cn.com/"><STRONG>chi flat iron</STRONG></a> name, that will pass <a href="http://www.michaelkors-outlet-canada.ca/"><STRONG>michael kors outlet</STRONG></a> as <a href="http://www.sac--longchamps.fr/"><STRONG>longchamp pas cher</STRONG></a> established; and the converse of your creed will become <a href="http://www.replica-watches.me.uk/"><STRONG>replica watches</STRONG></a> an article of faith.”To this <a href="http://www.truereligionoutlets.in.net/"><STRONG>true religion outlet</STRONG></a> my friend, who took <a href="http://www.katespadeoutlets.cc/"><STRONG>kate spade outlet</STRONG></a> up <a href="http://www.nikeroshe-run.co.uk/"><STRONG>nike roshe run uk</STRONG></a> the matter more seriously than <a href="http://www.soccer--shoes.net/"><STRONG>soccer shoes</STRONG></a> I <a href="http://www.valentino-shoes.in.net/"><STRONG>valentino shoes</STRONG></a> did, <a href="http://www.burberry-outletonline.net.co/"><STRONG>burberry handbags</STRONG></a> replied: “Come now, <a href="http://www.northface-outlet.in.net/"><STRONG>north face outlet</STRONG></a> father, your fraternity has received <a href="http://www.rayban--sunglasses.org/"><STRONG>ray ban sunglasses</STRONG></a> an <a href="http://www.outletonline-michaelkors.com/"><STRONG>michael kors outlet online</STRONG></a> honor which it sadly <a href="http://www.toms--shoes.net/"><STRONG>toms shoes</STRONG></a> abuses. <a href="http://www.poloralph-lauren.it/"><STRONG>ralph lauren</STRONG></a> It <a href="http://www.vansscarpe.it/"><STRONG>vans</STRONG></a> abandons that grace which <a href="http://www.truereligionsale.in.net/"><STRONG>true religion outlet</STRONG></a> was confided <a href="http://www.timberlandboot.net/"><STRONG>timberland boots</STRONG></a> to <a href="http://www.giuseppe-zanotti.in.net/"><STRONG>giuseppe zanotti outlet</STRONG></a> its care, and which <a href="http://www.longchamphandbags.us.com/"><STRONG>longchamp outlet</STRONG></a> has <a href="http://www.michael-korsoutlet.in.net/"><STRONG>michael kors outlet online</STRONG></a> never <a href="http://www.poloralphlaurenoutlet.us.org/"><STRONG>polo outlet</STRONG></a> been <a href="http://www.true-religion-jeans.in.net/"><STRONG>true religion outlet</STRONG></a> abandoned since the <a href="http://www.pandora--charms.in.net/"><STRONG>pandora charms</STRONG></a> creation of the world. That victorious grace, <a href="http://www.converse-pas-cher.fr/"><STRONG>converse pas cher</STRONG></a> which <a href="http://www.polo-ralph-lauren.in.net/"><STRONG>polo ralph lauren outlet online</STRONG></a> was waited for <a href="http://www.michaelkors-outlet-online.us.org/"><STRONG>michael kors outlet</STRONG></a> by the patriarchs, predicted by the prophets, <a href="http://www.jimmychoo-shoes.in.net/"><STRONG>jimmy choo outlet</STRONG></a> introduced <a href="http://www.christianlouboutin-outlet.in.net/"><STRONG>christian louboutin</STRONG></a> by Jesus <a href="http://www.pandora-jewelry.in.net/"><STRONG>pandora jewelry</STRONG></a> Christ, <a href="http://www.tiffanysandco.in.net/"><STRONG>tiffany and co</STRONG></a> preached <a href="http://www.thenorth--face.co.uk/"><STRONG>north face uk</STRONG></a> by St. Paul, explained by <a href="http://www.sac-guesspascher.fr/"><STRONG>guess pas cher</STRONG></a> St. Augustine, the greatest of the fathers, embraced by his followers, confirmed by <a href="http://www.nike--trainers.co.uk/"><STRONG>nike trainers uk</STRONG></a> St. Bernard, <a href="http://www.iphonecases.com.co/"><STRONG>iphone 6 cases</STRONG></a> the last of the fathers, supported by St. <a href="http://www.ralphlaurenoutlet-uk.co.uk/"><STRONG>ralph lauren uk</STRONG></a> Thomas, <a href="http://www.michaelkors-handbags.in.net/"><STRONG>michael kors outlet</STRONG></a> the angel of the schools, transmitted by him <a href="http://www.lululemon-outlet-canada.ca/"><STRONG>lululemon canada</STRONG></a> to your order, maintained by so many <a href="http://www.nikefree-running.co.uk/"><STRONG>nike free uk</STRONG></a> of your fathers, and <a href="http://www.lunette-rayban-pas-cher.fr/"><STRONG>ray ban pas cher</STRONG></a> so nobly defended by your monks under <a href="http://www.babyliss.in.net/"><STRONG>babyliss</STRONG></a> Popes Clement and Paul — that <a href="http://www.karenmillen-dresses.me.uk/"><STRONG>karen millen uk</STRONG></a> efficacious grace, <a href="http://www.coachoutletstoreonline.jp.net/"><STRONG>coach outlet store online</STRONG></a> which had been committed as a <a href="http://www.vanspas-cher.fr/"><STRONG>vans pas cher</STRONG></a> sacred <a href="http://www.abercrombiehollister.it/"><STRONG>hollister</STRONG></a> deposit into <a href="http://www.converse--shoes.com/"><STRONG>converse outlet</STRONG></a> your <a href="http://www.nike-airmax-pas-cher.fr/"><STRONG>nike air max</STRONG></a> hands, <a href="http://www.pandora--charms.org.uk/"><STRONG>pandora uk</STRONG></a> that <a href="http://www.longchampbags.org.uk/"><STRONG>longchamp uk</STRONG></a> it might find, <a href="http://www.sac-michaelkors-pascher.fr/"><STRONG>michael kors pas cher</STRONG></a> in a <a href="http://www.nikeoutlet.us/"><STRONG>nike outlet</STRONG></a> sacred and everlasting order, a <a href="http://www.coachpurse.in.net/"><STRONG>coach purses</STRONG></a> succession of preachers, who <a href="http://www.hollister-clothing-store.com/"><STRONG>hollister clothing</STRONG></a> might proclaim it <a href="http://www.soccerjerseys.com.co/"><STRONG>soccer jerseys</STRONG></a> to the end of <a href="http://www.louboutin-pas-chere.fr/"><STRONG>louboutin pas cher</STRONG></a> time <a href="http://www.vans-shoes-outlet.com/"><STRONG>vans outlet</STRONG></a> — is discarded <a href="http://www.linksoflondon.me.uk/"><STRONG>links of london</STRONG></a> and <a href="http://www.sac-vanessa-bruno.fr/"><STRONG>sac vanessa bruno</STRONG></a> deserted for <a href="http://www.swarovski-uk.co.uk/"><STRONG>swarovski</STRONG></a> interests the most contemptible. It <a href="http://www.maccosmeticsoutlet.in.net/"><STRONG>mac cosmetics</STRONG></a> is high time for other hands to <a href="http://www.bottegaveneta-handbagsoutlet.com/"><STRONG>bottega veneta</STRONG></a> arm <a href="http://www.truereligioninc.in.net/"><STRONG>true religion jeans</STRONG></a> in its <a href="http://www.baseball-bats.us/"><STRONG>baseball bats</STRONG></a> quarrel. It is time <a href="http://www.rayban-sunglasses.me.uk/"><STRONG>ray ban uk</STRONG></a> for God to raise up <a href="http://www.michaelkorshandbags-uk.org.uk/"><STRONG>michael kors</STRONG></a> intrepid disciples <a href="http://www.asicso.com/"><STRONG>asics running shoes</STRONG></a> of the Doctor of <a href="http://www.coachoutlet.jp.net/"><STRONG>coach outlet</STRONG></a> grace, who, strangers to the entanglements of the world, will <a href="http://www.rayban--sunglasses.in.net/"><STRONG>ray ban sunglasses</STRONG></a> serve <a href="http://www.montblancpens.cc/"><STRONG>mont blanc pens</STRONG></a> God for God’s <a href="http://www.christian--louboutin.co.uk/"><STRONG>christian louboutin uk</STRONG></a> sake. Grace may not, indeed, <a href="http://www.polo-lacoste-pascher.fr/"><STRONG>polo lacoste</STRONG></a> number <a href="http://www.nikeair-max.fr/"><STRONG>air max</STRONG></a> the Dominicans among <a href="http://www.toryburch-outletonline.in.net/"><STRONG>tory burch outlet</STRONG></a> her <a href="http://www.niketnrequin-pascher.fr/"><STRONG>nike tn</STRONG></a> champions, <a href="http://www.cheapweddingdresses.org.uk/"><STRONG>wedding dresses</STRONG></a> but <a href="http://www.abercrombieand-fitch.in.net/"><STRONG>abercrombie and fitch</STRONG></a> champions she <a href="http://www.poloralphlauren-pascher.fr/"><STRONG>polo ralph lauren</STRONG></a> shall never want; for, <a href="http://www.nike-freerun.com/"><STRONG>nike free</STRONG></a> by <a href="http://www.hollister-abercrombiefitch.fr/"><STRONG>hollister pas cher</STRONG></a> her own almighty energy, <a href="http://www.chanel-handbags.com.co/"><STRONG>chanel handbags</STRONG></a> she creates them for herself. She <a href="http://www.michaelkorsoutlets-online.us.com/"><STRONG>michael kors outlet online</STRONG></a> demands <a href="http://www.thomas-sabo-uk.org.uk/"><STRONG>thomas sabo</STRONG></a> hearts pure and disengaged; nay, she herself purifies and <a href="http://www.ghd-hair-straighteners.org.uk/"><STRONG>ghd hair</STRONG></a> disengages <a href="http://www.nikefreerun.fr/"><STRONG>nike free run</STRONG></a> them from worldly <a href="http://www.tiffanyjewelry.net.co/"><STRONG>tiffany jewelry</STRONG></a> interests, incompatible with <a href="http://www.nikeair-max.it/"><STRONG>nike air max</STRONG></a> the truths of the Gospel. <a href="http://www.beatsbydrdreheadphones.in.net/"><STRONG>beats by dre</STRONG></a> Reflect seriously, on this, father; and take <a href="http://www.cheap-weddingdresses.org/"><STRONG>wedding dresses</STRONG></a> care that God does <a href="http://www.cheap-nfljersey.in.net/"><STRONG>nfl jerseys</STRONG></a> not <a href="http://www.swarovski-jewelry.in.net/"><STRONG>swarovski crystal</STRONG></a> remove <a href="http://www.nikeblazerpaschere.fr/"><STRONG>nike blazer pas cher</STRONG></a> this <a href="http://www.guccioutlets.com.co/"><STRONG>gucci handbags</STRONG></a> candlestick <a href="http://www.juicycoutureoutlet.jp.net/"><STRONG>juicy couture outlet</STRONG></a> from its place, <a href="http://www.nikeairmaxinc.net/"><STRONG>nike air max</STRONG></a> leaving you in <a href="http://www.occhiali-oakley.it/"><STRONG>oakley</STRONG></a> darkness and without <a href="http://www.sachermes.fr/"><STRONG>sac hermes</STRONG></a> the crown, as <a href="http://www.rolex-replicawatches.us.com/"><STRONG>replica watches</STRONG></a> a punishment for <a href="http://www.air-jordanshoes.com/"><STRONG>jordan shoes</STRONG></a> the coldness which you manifest to <a href="http://www.prada-outlet.in.net/"><STRONG>prada outlet</STRONG></a> a cause so important to <a href="http://www.redbottoms.in.net/"><STRONG>christian louboutin outlet</STRONG></a> his <a href="http://www.airjordanpas-cher.fr/"><STRONG>jordan pas cher</STRONG></a> Church.”</P><a href="http://www.michaelkorsoutlet-store.in.net/"><STRONG>michael kors outlet store</STRONG></a>

lipca 21, 2015 08:47
 

zhengjx said:

2015-08-17  zhengjx

http://www.coachoutletstoreonline.com.so

http://www.oakleysunglassessale.name

http://www.pradaoutlet.name

http://www.chaussurelouboutin-pascher.fr  

http://www.nikerosherunwomen.me.uk

http://www.mulberry-bags.org.uk

http://www.michael-kors-bags.co.uk

http://www.saclongchamp-solde.fr      

http://www.mont-blancpens.name

http://www.pandoracharms.com.co

http://www.katespadeuk.me.uk

http://www.michaelkors-outletonlines.in.net

http://www.adidasgazelle.me.uk

http://www.coachfactoryoutlet.net.so

http://www.abercrombie.com.so

http://www.mcmhandbags.name      

http://www.nikeelitesocks.com.co

http://www.adidassuperstar.co.uk

http://www.nikehuarache.com.co

http://www.michael-korshandbags.com.co

http://www.airforce1-nike.fr    

http://www.edhardyukclothing.me.uk

http://www.jordan-femmepascher.fr    

http://www.truereligion-outlet.net.co

http://www.ralph-lauren.me.uk

http://www.fitflopssaleclearance.com

http://www.basketballshoes.net.co

http://www.edhardy-outlet.name    

http://www.pandorajewelryoutlet.name

http://burberry.outoff.com.co

http://www.gucciuk.me.uk

http://www.timberlanduk.me.uk

http://www.hollisterclothing-store.net

http://www.michaelkors-uk.me.uk

http://www.oakleysunglassesfake.in.net

http://www.raybansunglass.name

http://www.coach--outlet.com.co

http://www.michaelkorshandbag.org.uk

http://www.ralph-lauren-pas-cher.fr  

http://www.gucci-borse.it      

http://www.sac-longchamppliage.fr    

http://www.nikestoreuk.me.uk

http://www.kate-spadeoutlet.com.co

http://www.michael--korsoutlet.net.co

http://www.soccershoesforsale.name  

http://www.christianlouboutinsell.net

http://www.longchampoutlet.net.co    

http://www.nike-blazerlow.fr    

http://www.raybansunglassesdeals.com.co

http://www.nike-airmax90.me.uk

http://www.nikefreeruns.uk

http://www.nike-airmax.org.uk

http://www.poloralphlauren.net.co

http://www.airjordan-uk.org.uk        

http://www.cheapjordans.com.co

http://www.cheapsoccerjersey.us

http://www.niketrainers.com.co

http://www.rolex-replicawatches.com.co

http://www.louisvuitton-borse.it  

http://www.christianlouboutinuk.me.uk

http://www.chaussure-louboutin.fr    

http://www.adidas-trainers.me.uk

http://www.coachfactoryoutletus.in.net

http://www.nike-tn-pascher.fr

http://www.snapbacks-wholesale.us  

http://www.guccioutlet.com.so

http://www.northfaceuk.org.uk

http://www.hollisteruksale.me.uk

http://www.tomsshoesoutlet.name

http://www.adidas-shoes.me.uk

http://www.michaelkorshandbag-uk.co.uk

http://www.true-religionjeans.net.co

http://www.runningshoes.com.co

http://www.toryburchoutlet-sale.in.net

http://www.louisvuitton-sac-pascher.fr

http://www.katespade-handbags.net.co

http://www.ralphlauren-uk.me.uk

sierpnia 17, 2015 11:49

Co o tym myślisz?

(wymagane) 
(opcjonalne)
(wymagane) 

  
Wprowadź kod: (wymagane)
Wyślij
W oparciu o Community Server (Personal Edition), Telligent Systems