home *** CD-ROM | disk | FTP | other *** search
/ Chip 2003 April / Chip_2003-04_cd1.bin / tema / krypta / articles.php@ID=140 < prev    next >
Encoding:
Text File  |  2003-02-02  |  20.7 KB  |  354 lines

  1. <!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <html>
  3. <head>
  4.  <title>Krypta.cz - Ochrana dat v databßzφch a (nejen) bezpeΦnostnφ problΘmy (1.dφl)</title>
  5.  <link rel="StyleSheet" href="server/main.css" type="text/css">
  6.  <link rel="SHORTCUT ICON" href="server/favicon.ico">
  7.  <meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
  8.  <meta http-equiv="Cache-control" content="no-cache">
  9.  <meta http-equiv="Pragma" content="no-cache">
  10.  <meta http-equiv="Expires" content="0">
  11.  <meta name="robots" content="ALL,FOLLOW">
  12.  <meta http-equiv="Content-language" content="cs">
  13.  <meta name="description" content="Internetov² bezpeΦnostnφ portßl, zab²vajφcφ se kryptografiφ (Üifrovßnφm), ochranou dat, internetovou bezepeΦnostφ a poΦφtaΦov²mi viry">
  14.  <meta name="keywords" content="Üifrovßnφ cryptography pgp des aes rsa dss digital signatures pki linux free bezpeΦnost ochrana hacking cracking virus worm">
  15.  <meta name="copyright" content="Copyright (C) 2000-2002 Krypta.cz - <a href=mailto:michal.till@krypta.cz>Michal Till</a> a <a href=mailto:jan.kulveit@krypta.cz>Jan Kulveit</a>.">
  16.  <!-- No caching for this document.Trying to write to art140.html. ?> -->
  17.  
  18.  <!-- output.php -->
  19.  
  20.   <script language="JavaScript">
  21.   <!-- 
  22. //    if(top != self) { window.top.location.href=document.location; }  -->
  23.   </script>
  24.  
  25.  
  26. <!-- NAVRCHOLU.cz -->
  27. <script language="JavaScript" type="text/javascript">
  28. <!--
  29. pxDepth = screen.pixelDepth;
  30. if (!(pxDepth > 0))
  31.     pxDepth = screen.colorDepth;
  32. if (!(pxDepth > 0))
  33.     pxDepth = 0; 
  34. document.write("<img style=\"position:absolute; top:0px; left: 0px;\" src=\"../hit.navrcholu.cz/hit@id=00039669;n=1;screenx=" + screen.width + ";screeny=" + screen.height + ";cdepth=" + pxDepth + ";ref=" + escape(top.document.referrer) + "\" width=\"1\" height=\"1\" alt=\"\">");
  35. // -->
  36. </script>
  37. <noscript>
  38. <img style="position:absolute; top:0px; left: 0px;" src="../hit.navrcholu.cz/hit@id=00039669;n=1" width="1" height="1" alt="" border="0">
  39. </noscript>
  40. <!-- NAVRCHOLU.cz - konec -->
  41.  
  42. <STYLE Type=text/css>
  43.     BODY                { font-size:110%; background-color: #ffffff; color: #000000; margin: 0px;   background-image: url(images/backgr.gif); }
  44.  
  45.  
  46.  
  47.     .Copyright        { color: #000000; }
  48.     .Copyright A    { color: #000000; }
  49. </STYLE>
  50. </head>
  51. <SCRIPT>
  52. </SCRIPT><SCRIPT Src=charts.php@version=1621></SCRIPT><SCRIPT>
  53.  // Nalezeno  1 polozek. 
  54. var SectionTitles=new Array( "Ochrana dat v databßzφch a (nejen) bezp" , "      Zm∞na nenφ jen tak!" , "    Transakce" );
  55. var SectionURLs=new Array( "140" , "140#Title1" , "140#Title2" );
  56.  
  57. var BrothersNames = new Array("Ochrana dat v datab_25E1z_25EDch a (nejen) bezpe_25E8nostn_25ED probl_25E9my (1.d_25EDl)","Ochrana dat v datab_25E1z_25EDch a (nejen) bezpe_25E8nostn_25ED probl_25E9my (2.d_25EDl)","SQL v praxi aneb bezpeΦnostnφ oddech","");
  58. var BrothersIDs = new Array("140","142","146","");
  59. //=====INFO======
  60. ItemName='Article140';
  61.  
  62. InIFrame='No';
  63. TableNum=2; 
  64. ItemID=140; 
  65. ArticleType='1'; 
  66. Action='articles'
  67. ItemTitle='Ochrana dat v datab_25E1z_25EDch a (nejen) bezpe_25E8nostn_25ED probl_25E9my (1.d_25EDl)';
  68. ItemComment='Ochrana dat v datab_25E1z_25EDch a (nejen) bezpe_25E8nostn_25ED probl_25E9my (1.d_25EDl)';
  69. TabName='Articles'
  70. Parent1Title='Databßze' ;
  71. Parent2Title='BezpeΦnost a anonymita' ;
  72. Parent1ID='51' ;
  73. Parent2ID='9' ;
  74. ParentTitle='Databßze' ;
  75. AuthorName='Michal Till' ;
  76. AuthorDesc='' ;
  77. AuthorEMail='Michal.Till_40Seznam.cz' ;
  78. AuthorID='1' ;
  79. ItemDate='13.2.2002';
  80. Views='249' ;
  81. Average='1.00' ;
  82. Grade='1' ;
  83. NumVotes='1' ;
  84. SourceName='' ;
  85. SourceURL='' ;
  86. SourceLink='' ;
  87. Ref1URL='' ;
  88. Ref2URL='' ;
  89. Ref3URL='' ;
  90. Ref4URL='' ;
  91. Ref5URL='' ;
  92. Ref1Link='' ;
  93. Ref2Link='' ;
  94. Ref3Link='' ;
  95. Ref4Link='' ;
  96. Ref5Link='' ;
  97. Ref1Desc='' ;
  98. Ref2Desc='' ;
  99. Ref3Desc='' ;
  100. Ref4Desc='' ;
  101. Ref5Desc='' ;
  102. Possible=1 ;
  103. Answer1='' ;
  104. Answer2='' ;
  105. Answer3='' ;
  106. Answer4='' ;
  107. Answer5='' ;
  108. Num1='';
  109. Num2='';
  110. Num3='';
  111. Num4='';
  112. Num5='';
  113. Type= ''; //def
  114. WebName='Krypta.cz';
  115. //====ENDINFO======
  116.  
  117. </SCRIPT>
  118.  
  119. <BODY>
  120. </SCRIPT>
  121. <SCRIPT Language=JavaScript Src="server/startfeatures.php@Rand=ddd "> </SCRIPT><SCRIPT Language=JavaScript Src="server/features.php"> </SCRIPT><!-- Rozdeleni na sloupce -->
  122.  
  123. <TABLE cellspacing="0" cellpadding="0" border="0" width="100%">
  124. <tr>
  125.  
  126. <!-- Levy sloupec -->
  127.  
  128.  
  129.  
  130. <td  width="161" align="center" valign="top">
  131.  
  132. <img src=space.gif height=1 width=161>
  133. <SCRIPT SRC=server/left_js.php@version=1621></SCRIPT></td>
  134.  
  135. <!-- /Levy sloupec -->
  136.  
  137. <!-- Mezera 1-->
  138. <td width=13 bgcolor="#006792" ><img src="images/spacer.gif" width="13" height="1" border="0" alt=""></td>
  139. <!-- /Mezera 1-->
  140.  
  141. <!-- Mezera 2 -->
  142. <td width=1 bgcolor=#1063A5><img src="images/spacer.gif" width="1" height="1" border="0" alt=""></td>
  143. <!-- /Mezera 2-->
  144.  
  145. <!-- Mezera 3 -->
  146. <td width=10><img src="images/spacer.gif" width="10" height="1" border="0" alt=""></td>
  147. <!-- /Mezera 3-->
  148.  
  149.  
  150. <!-- Prostredni sloupec -->
  151. <td align="center" valign="top">
  152.  
  153. <!-- Hlavicka -->
  154. <!-- Horni lista s reklamou -->
  155.  
  156. <TABLE cellspacing="0" cellpadding="0" border="0" width="100%" class="hrlista">
  157. <tr>
  158.  
  159. <!-- Logo-->
  160. <td VAlign=Top>
  161. <a href="default.htm"><img src="images/logo.gif"  style="z-index:100;" vspace=0 cwidth="222" cheight="48" border="0" alt="Krypta.cz - Magazφn o informaΦnφ bezpeΦnosti"></a>
  162. </td>
  163. <!-- /Logo -->
  164.  
  165. <td align=center>
  166. </td></tr></table>
  167. <!-- /Horni lista s reklamou-->
  168. <!-- /Hlavicka -->
  169.  
  170. <TABLE Width=100% Border=0><TD><SCRIPT>
  171. </SCRIPT><SCRIPT>
  172. ArticleHead('Ochrana dat v datab_25E1z_25EDch a (nejen) bezpe_25E8nostn_25ED probl_25E9my (1.d_25EDl)', 'Michal Till', 'Michal.Till_40Seznam.cz', '13.2.2002', '22:09:09', '╚lßnek');
  173. Intro('P°i vyu₧φvßnφ databßzovΘho systΘmu jeho sprßvci a vlastnφcφ Φasto cφtφ, jak jim cena  dat s Φasem nar∙stß, tabulky nap°φklad obsahujφ zßznamy o Φφm dßl tφm v∞tÜφ skupin∞ lidφ, pr∙m∞rnΘ hodnoty toho Φi onoho jsou neustßle p°esn∞jÜφ, objevujφ se statistickΘ vztahy, kterΘ p°edtφm ka₧d² pova₧oval za nßhodu. V takovΘto dob∞ si odpov∞dnφ pracovnφci Φasto kladou otßzky typu "Jak pravideln∞ a na co zßlohujeme?", "Co zabrßnφ vynßÜenφ dat z organizace ven?" a podobn∞. Rßd bych, aby m∙j Φlßnek poslou₧il minimßln∞ jako pr∙let ochranou dat v t∞chto systΘmech a jako °ekn∞me sm∞rnice, kam se v bezpeΦnosti databßzφ vydat.');
  174. ArticleBanner_smallres('margin-bottom:10px;margin-top:-3px;');
  175. </SCRIPT>
  176. <DIV Class=Article><SCRIPT>
  177. AuthorData();
  178. if (Type != 'Pure') if ((ArticleType!=19) && (ArticleType!=20)) ShowSections();
  179. ArticleBanner_bigres('margin-top:12px;margin-bottom:-3px;');
  180. </SCRIPT><FONT Size=2><DIV Align=Justify Class=Paragraph>
  181.     V databßzovΘm systΘmu jsou vÜechna data soust°ed∞na do jednoho mφsta. K takovΘmuto objektu se p°istupuje jednotn²m zp∙sobem, jednotn²m zp∙sobem se data Φtou, jednotn²m zp∙sobem se autorizuje p°φstup u₧ivatel∙. Databßzovß aplikace spolu s daty tak tvo°φ v rßmci firmy, organizace apod. jednotn² celek, kter² naz²vßme databßzov² systΘm. Pohled na komplexnφ bezpeΦnost takovΘhoto enormn∞ obsßhlΘho objektu nenφ jednoduch² a samotn² sprßvn² popis privilegiφ a jejich spojenφ s konkrΘtnφmi u₧ivateli a skupinami je Φasto ·loha nßroΦnß sama o sob∞. ┌pln² a vyΦerpßvajφcφ popis vÜech aspekt∙ by byl materißl pro celou publikaci a takovΘto zpracovßnφ je nad rßmec tohoto Φlßnku. 
  182. </DIV></FONT></b></i>
  183. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  184.     Vyjmenuje si nejd°φve postupn∞ mo₧nß bezpeΦnostnφ rizika, kter²m je naÜe databßze vystavena. 
  185. </DIV></FONT></b></i>
  186. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  187.     P°edn∞ je zde fyzickß integrita databßze, tedy odolnost v∙Φi v²padk∙m napßjenφ, havßrii pevn²ch disk∙ a proti ostatnφm formßm poÜkozenφ. Na dalÜφ stupe≥ je mo₧nΘ polo₧it jakousi strukturßlnφ bezpeΦnost, tφm mßm na mysli zachovßnφ sprßvnΘ sytaxe dat a zachovßnφ vazeb mezi jednotliv²mi objekty databßze. 
  188. </DIV></FONT></b></i>
  189. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  190.     Pokud jsou takto objekty mezi sebou sprßvn∞ svßzßny, je nutnΘ zajisit datovou integritu. Kup°φkladu nenφ mo₧nΘ, aby ve sloupci s typem datum byl, obsah datum nevyjad°ujφcφ. Nemusφ v₧dy jφt pouze o data p°φmo nesmyslnß, nebo¥ potencionßlnφ nejen bezpeΦnostnφ problΘm m∙₧e p°edstavovat nap°φklad datum 29. 2. 2001, tedy "den navφc" v nep°estupnΘm roce (lze bez problΘm∙ vlo₧it nap°φklad do MySQL). Pokud se t°eba ka₧d² den testuje, zda prßv∞ dnes n∞komu nevyprÜelo to Φi ono (u₧ivatelsk² ·Φet, certifikßt, oprßvn∞nφ apod...), °ßdek s takovouto lh∙tou z∙stane v databßzi neodstran∞n.
  191. </DIV></FONT></b></i>
  192. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  193.     Je jasnΘ, ₧e zde klφΦovou ·lohu hraje Φlov∞k, kter² d∞lß (a¥ ji₧ ·mysln∞ nebo ne·mysln∞) chyby. Ty musφ b²t S╪BD (SystΘmem °φzenφ bßze dat) minimßln∞ zachyceny a odmφtnuty. Takovßto kontrola sprßvnosti se naz²vß field checks. I nejjednoduÜφ databßzovΘ systΘmy musφ nap°φklad rozpoznat chybn∞ zadanΘ Φφslo.
  194. </DIV></FONT></b></i>
  195. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  196.     Na dalÜφ stupe≥ bych postavil autorizaci jednotliv²ch u₧ivatel∙ v databßzi. Jednß se p°edevÜφm o mechanizmus ov∞°ovßnφ p°φstupovΘho jmΘna, hesla a p°istupujφcφho poΦφtaΦe. Poslednφ jmenovanß hodnota v tabulce u₧ivatel∙ dßvß mo₧nost omezit p°φstup z poΦφtaΦ∙. NejΦast∞ji se striktn∞ povolφ p°φstup pouze poΦφtaΦi na kterΘm databßze b∞₧φ (localhost), nebo pouze poΦφtaΦ∙m urΦitΘ domΘny (%.firma.cz, kde % zde znamenß wildcard, tedy jakΘhosi ₧olφka zastupujφcφho cokoliv).
  197. </DIV></FONT></b></i>
  198. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  199.     Nad rßmec autorizace jednotliv²ch u₧ivatel∙ je kontrola vlastnφch p°φstupov²ch prßv.  Dobr² databßzov² systΘm by m∞l mφt mechanizmus p°id∞lovßnφ prßv co nejvφce flexibilnφ, aby bylo mo₧no sprßvc∙m co nejvφce vystihnout danou reßlnou situaci a nutnΘ pot°eby p°φstupu. ╚asto je pot°eba jednotliv²m u₧ivatel∙m/skupinßm zakßzat p°φstup do n∞kter²ch tabulek, do ostatnφch by m∞l z∙stat povolen, ka₧dΘmu pochopiteln∞ jinak. N∞kte°φ u₧ivatelΘ by ale nem∞li vid∞t urΦitΘ sloupce n∞kter²ch tabulek. N∞kte°φ jinφ t°eba ano, ale pouze pro Φtenφ. Ti co m∙₧ou v databßzi m∞nit ·daje ale t°eba zase nesmφ mazat nebo p°idßvat jednotlivΘ °ßdy. Jak je vid∞t, Φφm pru₧n∞jÜφ nastavenφ prßv, tφm lΘpe.
  200. </DIV></FONT></b></i>
  201. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  202.     Dßle by m∞lo b²t mo₧nΘ v p°φpad∞ zßkazu Φtenφ jednotliv²ch °ßdku povolit Φtenφ souhrnn²ch ·daj∙, co₧ bych oznaΦil jako stupe≥ poslednφ, alespo≥ co se mo₧nosti zneu₧itφ t²Φe. Obecn∞ °eΦeno, pokud jsou n∞kterß data tajnß a jinß nikoliv, tak je nutnΘ dßt obzvlßÜ¥ pozor na dßle zmi≥ovan² tzv. problΘm odvoditelnosti (viz dalÜφ dφly). 
  203. </DIV></FONT></b></i>
  204. <A Name="Title1"><FONT Size=3><DIV Class=Headline>
  205. Zm∞na nenφ jen tak!</DIV></font>
  206. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  207.     Zm∞nit urΦitΘ mno₧stvφ dat ve velkΘ databßzi je Φasto podstatn∞ nßroΦn∞jÜφ proces, ne₧ se mohlo b²t na prvnφ pohled zdßt. Cen∞ databßze je p°edn∞ nutnΘ p°izp∙sobit p°φpadnou nutnost logovßnφ prßce s nφ, je t°eba zajistit tzv. auditabilitu a to p°edevÜφm ze dvou d∙vod∙. Prvnφm je prost² log zm∞n, kdy se v p°φpad∞ kritick²ch polo₧ek uschovßvß p∙vodnφ i novß hodnota. Vedle toho je se ale Φasto sleduje p°φstup do databßze jako podklad pro vyhodnocovßnφ oprßvn∞nosti budoucφch dotaz∙. N∞kterΘ dotazy je nap°φklad nutnΘ d∞lat chronologicky za sebou (nap°. v dob∞ ·Φetnφ uzßv∞rky, inventarizace apod...), poruÜenφ ΦasovΘ souslednosti m∙₧e b²t znßmkou neoprßvn∞nΘho ₧ßdßnφ dat.
  208. </DIV></FONT></b></i>
  209. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  210.     Nastavenφ jemnosti logovßnφ (granulity) doporuΦuji v∞novat specißlnφ pozornost, nebo¥ p°i nesprßvnΘ volb∞ m∙₧e b²t v²pis po₧adavk∙ za chvφli gigantick² a v n∞m skuteΦn∞ hodnotnΘ a relevantnφ informace mohou zabφrat pouhß procenta. 
  211. </DIV></FONT></b></i>
  212. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  213.     Vlastnφ zm∞na hodnot probφhß podstatn∞ jinak ne₧ nap°φklad zm∞na souboru u jednoduchΘho souborovΘho systΘmu. Jde o to, jak vylouΦit zm∞nu jednΘ polo₧ky dv∞ma Φi vφce u₧ivateli najednou, co₧ se v praxi nejΦast∞ji d∞lß pou₧itφm transakcφ.
  214. </DIV></FONT></b></i>
  215. <A Name="Title2"><FONT Size=3><DIV Class=Headline>Transakce</DIV></font>
  216. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  217.     Transakce je ned∞liteln² logick² celek p°φkaz∙, kterΘ nemohou b²t vykonßny zvlßÜ¥. Takov²m klasick²m a vÜude om²lan²m p°φkladem je baknovnφ p°evod. Snφ₧enφ stavu jednoho ·Φtu a nav²Üenφ druhΘho jsou dva p°φkazy, nicmΘn∞ jejich "nesoudr₧nost" by vyvolalo v bance pohromu. Nenφ zkrßtka mo₧nΘ ud∞lat jen p∙l, databßze by ztratila vnit°nφ konzistenci. To se m∙₧e stßt z r∙zn²ch fyzick²ch p°φΦin, o kter²ch byla °eΦ v ·vodu Φlßnku. 
  218. </DIV></FONT></b></i>
  219. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  220.     P°i vykonßvßnφ jednotliv²ch p°φkaz∙ transakce se neoperuje se skuteΦn²mi daty ale s jejich kopiφ. JakΘsi stornovßnφ transakce p°edstavuje p°φkaz ROLLBACK, p°i kterΘm je vÜe jakoby pro po°ßdek odrolovßno zp∞t. Teprve po zadßnφ p°φkazu COMMIT novß hodnoty jakoby najednou "p°eplßcnou" ty starΘ. Tφm transakce definitivn∞ skonΦila a m∙₧e zaΦφt novß. N∞kterΘ databßzovΘ systΘmy (nap°. MySQL) ovÜem transakce nemajφ implementovßny, Φasto je uvßd∞n d∙vod nutnosti zachovßnφ souΦasnΘ (Φasto vyhlßÜenΘ) rychlosti zpracovßnφ dotaz∙.
  221. </DIV></FONT></b></i>
  222. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  223.     Transakce jsou ideßlnφm °eÜenφm v p°φpad∞, ₧e jeden u₧ivatel z databßze Φte a druh² do nφ (v tu samou dobu) zapisuje. Zßpis se uzav°e do transakce a p°eΦtenΘ informace budou maximßln∞ za pßr sekund neaktußlnφ. Nic ale nebude "nap∙l". Pokud ovÜem vφce u₧ivatel∙ do databßze zapisuje, tak si s nimi nevystaΦφme. Uve∩me si p°φklad fiktivnφ t°φdy v²robk∙, kterΘ stojφ 100 KΦ. ProblΘm nastane, pokud se v jednom okam₧iku n∞kdo rozhodne tyto v²robky o 20 KΦ zlevnit ale n∞kdo jin² mß v ·myslu ploÜn∞ zdra₧it vÜe o 5%. Jak zßle₧φ na po°adφ transakcφ si uka₧me nynφ: 
  224. </DIV></FONT></b></i>
  225. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  226.     <UL STYLE="margin-right:50px;" Class=LinkItem><LI> Nejprve se danΘ v²robky zlevnφ o 20 KΦ a regulΘrn∞ se ukonΦφ transakce. Nßsleduje ploÜnΘ p∞tiprocentnφ zdra₧enφ, celkovß cena tedy bude (100-20) * 1.05 = 84 KΦ.</UL>
  227. </DIV></FONT></b></i>
  228. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  229.     <UL STYLE="margin-right:50px;" Class=LinkItem><LI> Pokud se naopak nejprve zdra₧φ a potΘ se konkrΘtnφ v²robky zlevnφ, bude v²slednß cena (100 * 1.05) - 20 = 85 KΦ (P°i v∞tÜφch Φßstkßch by byl rozdφl pochopiteln∞ daleko markantn∞jÜφ). </UL>
  230. </DIV></FONT></b></i>
  231. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  232.     V tomto i p°edeÜlΘm p°φpad∞ se stalo akorßt nßhodou, ₧e dva p°φkazy p°iÜly krßtce po sob∞, nicmΘn∞ jak si ukß₧eme, dalÜφ dv∞ hodnoty dostaneme, pokud se budou alespo≥ chvφli vykonßvat najednou.
  233. </DIV></FONT></b></i>
  234. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  235.     <UL STYLE="margin-right:50px;" Class=LinkItem><LI> Prvnφ se zaΦne vykonßvat transakce zlevn∞nφ a z databßze se naΦte pro vÜechny v²robky danΘ t°φdy hodnota 100 KΦ. V pr∙b∞hu odeΦφtßnφ 20 KΦ ale zaΦne transakce ploÜnΘho zdra₧ovßnφ, kterß, stejn∞ jako zlev≥ovßnφ naΦte p∙vodnφ 100 KΦ (nynφ pro vÜechny v²robky, novß hodnota z prvnφ transakce jeÜt∞ nebyla zapsßna). Nßsleduje potvrzenφ slevy a do n∞kter²ch °ßdk∙ se zapφÜe hodnota 80 KΦ. Jen₧e se jeÜt∞ musφ ukonΦit transakce ploÜnΘho zdra₧ovßnφ kterß prßv∞ zmenÜenou hodnotu p°epφÜe, v²slednß cena bude tedy 100 * 1.05 = 105 KΦ.</UL>
  236. </DIV></FONT></b></i>
  237. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  238.     <UL STYLE="margin-right:50px;" Class=LinkItem><LI> Pokud se celß situace jako v p°edeÜlΘm p°φpad∞ odehraje v opaΦnΘm po°adφ, na v²sledku se naopak neprojevφ transakce zdra₧enφ, koncovß cena bude 100 - 20 = 80 KΦ. </UL>
  239. </DIV></FONT></b></i>
  240. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  241.     Jak je vid∞t, vφcemΘn∞ nßhodnΘ po°adφ transakcφ m∙₧e dßt v nejhorÜφm p°φpad∞ a₧ Φty°i od sebe se liÜφcφ v²sledky. Ideßlnφm °eÜenφm je v urΦitΘ dob∞ privilegovat danou oblast dat pro konkrΘtnφho u₧ivatele a v p°φpad∞ dalÜφho po₧adavku data odmφtnout, pop°. zp°φstupnit pouze pro Φtenφ. Tedy pou₧φt takzvanΘ zßmky a to jak tzv. zßmek aktualizaΦnφ, kter² znamenß brzkou aktualizaci dat a je povolen p°φstup pouze pro Φtenφ, tak zßmek exkluzivnφ, kter² znaΦφ slo₧it∞jÜφ modifikace dat (mazßnφ, opravy, p°idßvßnφ) a v tuto dobu nemajφ ostatnφ u₧ivatelΘ k dat∙m ₧ßdn² p°φstup. 
  242. </DIV></FONT></b></i>
  243. <FONT Size=2><DIV Align=Justify Class=Paragraph>
  244.     V databßzov²ch systΘmech Φasto mφvajφ transakce pro p°φpad "zastavenφ" nastaveny jakousi Φasovou lh∙tu, po jejφm₧ vyprÜenφ ji systΘm stornuje a odroluje data zp∞t. Poslednφ v∞cφ, kterou bych zmφnil v souvislosti s vnit°nφ integritou datovou databßze je takzvan² pojem deadlock, p°i jeho °eÜenφ se toti₧ tato vlastnost hojn∞ vyu₧φvß. P°i zamykßnφ dat jednotliv²mi transakcemi je toti₧ op∞t mo₧nΘ, ₧e dv∞ transakce zamykajφ najednou. Stane se velmi nep°φjemnß v∞c : dv∞ transakce pot°ebujφ urΦitß data a zaΦnou si je zamykat jaksi "z jinΘho konce". V²sledkem je zablokovßnφ obou, nebo¥ ka₧dß Φekß, a₧ jφ uvolnφ data ta druhß. Ani jedna transakce nem∙₧e pokraΦovat, nastßvß deadlock. ┌Φelnost odrolovßnφ obou transakcφ po vyprÜenφ ΦasovΘho limitu je jasnß.
  245.  
  246. </DIV></FONT></b></i>
  247. </DIV>
  248. <SCRIPT>
  249. TextEnd('')
  250. </SCRIPT><SCRIPT>
  251. o('<br>');
  252. hr('');
  253. o('<TABLE '+CP+' '+CS+' style=\'position:relative;top:-'+sw('7','9')+'px;z-index:5\' xAlign=left '+B+'><TR><TD width=10><img HEIGHT=18 WIDTH=14 src=images/downgreyleft.gif hspace=0 vspace=0 '+B+' align=right><TD bgcolor=#E0E0E0><SPAN Style="font-size:12px;color:#000000;font-family:Verdana, Arial, Sans-Serif;position:relative;top:-2px;">Souvisejφcφ člßnky</SPAN><TD width=10><img src=images/downgreyright.gif width=17 height=18  hspace=0 vspace=0 '+B+' '+AL+'></TABLE>');
  254. </SCRIPT><OL Class=None Type=Disc><LI style='margin-left:20px;' class=LinkItem><a href=articles.php@ID=142><SPAN Class=SeeAlso>Ochrana dat v databßzφch a (nejen) bezpeΦnostnφ problΘmy (2.dφl)</SPAN></a></OL><SCRIPT>
  255. nie('<br>');AdditionalTablesBegin();
  256.  
  257. CommentsBegin('Ochrana dat v datab_25E1z_25EDch a (nejen) bezpe_25E8nostn_25ED probl_25E9my (1.d_25EDl)',3);
  258.  
  259. Comment('81','                                 <IMG Src=images/sub.gif valign=top> chybiΦka se vloudila ...','Tom','11');
  260. Comment('82','                                 <IMG Src=images/sub.gif valign=top> Dφky','Michal Till','11');
  261. Comment('92','                                 <IMG Src=images/sub.gif valign=top> Databßze jsou tΘmer bez ochrany','Radek Novak','11');
  262. CommentsEnd();
  263. </SCRIPT><SCRIPT>
  264. ArticleEnd()
  265. </SCRIPT></TABLE>
  266. <!-- /Prostredni sloupec -->
  267.  
  268.  
  269. <!-- Mezera 3 -->
  270.  
  271. <td width=5><img src="images/spacer.gif" width="5" height="1" border="0" alt=""></td>
  272. <!-- /Mezera 3-->
  273.  
  274. <!-- Mezera 2 -->
  275. <td width=1 bgcolor=#1063A5><img src="images/spacer.gif" width="1" height="1" border="0" alt=""></td>
  276. <!-- /Mezera 2-->
  277.  
  278. <!-- Mezera 1-->
  279. <td width=13 bgcolor="#006792" ><img src="images/spacer.gif" width="13" height="1" border="0" alt=""></td>
  280. <!-- /Mezera 1-->
  281.  
  282. <!-- Pravy sloupec -->
  283. <td bgcolor=#006792 width="0" align="center" valign="top">
  284. <SCRIPT SRC=server/right_js.php@version=1621></SCRIPT><br>
  285. </td>
  286. <!-- /Pravy sloupec -->
  287.  
  288.  
  289. </tr>
  290.  
  291. <!-- Bilo -->
  292. <tr>
  293. <td bgcolor=#000000><img src=space.gif height=1 width=1></td>
  294. <td bgcolor=#000000></td>
  295. <td bgcolor=#000000></td>
  296. <td bgcolor=#FFFFFF></td>
  297. <td bgcolor=#FFFFFF></td>
  298. <td bgcolor=#FFFFFF></td>
  299. <td colspan=5 bgcolor=#000000></td>
  300. </tr>
  301. <tr  bgcolor=#FFFFFF>
  302. <td><img src=space.gif height=20 width=1></td>
  303. <td></td>
  304. <td></td>
  305. <td></td>
  306. <td></td>
  307. <td></td>
  308. <td colspan=5></td>
  309. </tr>
  310. <!-- /Bilo-->
  311.  
  312.  
  313.  
  314. </table>
  315. <!-- /Rozdeleni na sloupce -->
  316.  
  317. <SCRIPT>
  318.     Exec(ToExecute);
  319.     ToExecute="";
  320. </SCRIPT>
  321.  
  322. <!-- Dolni lista -->
  323.  
  324.  
  325. <!-- Paticka -->
  326. <TABLE cellspacing="0" cellpadding="0" border="0" width="100%" bgcolor=#ffffff>
  327. <TR><td colspan=5 align="center" bgcolor=#000000><img src=space.gif height=1 width=1></td></TR>
  328. <TR bgcolor=#f0f0f0>
  329. <td align="center">
  330. <IMG Src=images/logo2.gif hspace=10 vspace=5>
  331. </td>
  332. <td>
  333. <DIV Style="margin-top:4px;margin-bottom:4px;" Class=Copyright><FONT Face=Arial Size=1>
  334.  
  335. <b><u>Krypta.cz</u></b> -  Magazφn o informaΦnφ bezpeΦnosti.<br>
  336. Copyright (C) 2000-2002 Krypta.cz - <a href=mailto:michal.till@krypta.cz>Michal Till</a> a <a href=mailto:jan.kulveit@krypta.cz>Jan Kulveit</a>. VÜechna prßva vyhrazena. <br>
  337. Tento server dodr₧uje prßvnφ p°edpisy o ochran∞ osobnφch ·daj∙, vΦetn∞ standardu P3P (<a href=server/policy.xml>policy</a>). </FONT></DIV>
  338. </td>
  339. <td>
  340. <IMG Src=geronimo.gif hspace=10 vspace=5>
  341. </td>
  342. <td>
  343. <DIV Style="margin-top:4px;margin-bottom:4px;" Class=Copyright><FONT Face=Arial Size=1>
  344. RedakΦnφ systΘm Geronimo<br>
  345. Copyright (C) 2001-2002 <a href=mailto:michal.till@krypta.cz>Michal Till</a>
  346. </FONT></DIV>
  347. </td>
  348. </td></tr></table>
  349. <!-- Paticka -->
  350.  
  351. <!-- /Dolni lista -->
  352.  
  353. </body>
  354. </html>