<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www2.sqlblog.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Adam Machanic : Security</title><link>http://www2.sqlblog.com/blogs/adam_machanic/archive/tags/Security/default.aspx</link><description>Tags: Security</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Code Camps and Revisiting a Common Theme</title><link>http://www2.sqlblog.com/blogs/adam_machanic/archive/2007/09/29/code-camps-and-revisiting-a-common-theme.aspx</link><pubDate>Sat, 29 Sep 2007 19:33:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:2744</guid><dc:creator>Adam Machanic</dc:creator><slash:comments>4</slash:comments><comments>http://www2.sqlblog.com/blogs/adam_machanic/comments/2744.aspx</comments><wfw:commentRss>http://www2.sqlblog.com/blogs/adam_machanic/commentrss.aspx?PostID=2744</wfw:commentRss><description>&lt;P&gt;Today I gave two talks at &lt;A class="" href="http://www.thedevcommunity.org/Events/PresentationList.aspx?id=4"&gt;New England Code Camp 8&lt;/A&gt;. A fun experience as always, and for those of you who were in my talks and are looking for decks/code, please see &lt;A class="" href="http://sqlblog.com/blogs/adam_machanic/archive/2007/05/11/thank-you-for-attending-today-s-webcast-on-authorization-privilege-and-access-control.aspx"&gt;this post&lt;/A&gt; and &lt;A class="" href="http://sqlblog.com/blogs/adam_machanic/archive/2007/05/18/another-webcast-thanks-errors-and-exceptions-in-sql-server-2005.aspx"&gt;this post&lt;/A&gt; from when I did slightly different versions of the same talks earlier this year as MSDN Webcsts. I am not quite ready to publish the decks I used today.&lt;/P&gt;
&lt;P&gt;But the topic of this post is not so much the code camp as an observation about what I saw there.&amp;nbsp;Recent posts by both of our resident Andys (&lt;A class="" href="http://sqlblog.com/blogs/andrew_kelly/archive/2007/09/27/double-standard.aspx"&gt;Kelly&lt;/A&gt; and &lt;A class="" href="http://sqlblog.com/blogs/andy_leonard/archive/2007/07/12/database-professionals-an-enterprise-requirement.aspx"&gt;Leonard&lt;/A&gt;) share the theme of organizations treating their database staff&amp;nbsp;as&amp;nbsp;next-to-worthless.&amp;nbsp;&amp;nbsp;And developers, in general, seem much more interested in other facets of&amp;nbsp;development than&amp;nbsp;all of that "database stuff." &lt;/P&gt;
&lt;P&gt;Today's code camp proved this once again; my two talks were both quite lightly attended, even though I was talking about&amp;nbsp;important issues around data security and exception handling--things that any developer working with data should get. Perhaps it's just me, but the evidence says otherwise: after my talks I peeked into a few others and found a standing room only session on Silverlight and a session on LINQ to SQL&amp;nbsp;that had a comparable number of attendees to what I'd had.&lt;/P&gt;
&lt;P&gt;Why is it that data, while&amp;nbsp;the foundation of any business&amp;nbsp;application,&amp;nbsp;is&amp;nbsp;not a draw to&amp;nbsp;the developer masses?&amp;nbsp;How can we&amp;nbsp;ignore the data and instead focus on creating spiffy new UIs (to display flawed data, no doubt)?&amp;nbsp;Perhaps data seems easy--if you know how to write a query and set up an ADO.NET connection, that's all you need, right?&amp;nbsp; Or perhaps data is just someone else's job--just let the DBA or database developer handle it and display anything that comes back, flawed or not. It's not your problem, you're a UI developer. But everyone can't be a UI developer, can they?&amp;nbsp; Someone has to take control of the data.&lt;/P&gt;
&lt;P&gt;Bad data can and does lead to project failure. If you're a UI developer you're going to get canned just as quickly as the DBA if you're project is no longer being funded--so if your UI displays bad data,&amp;nbsp;you are&amp;nbsp;&lt;EM&gt;just as guilty as&amp;nbsp;whomever designed the&amp;nbsp;database that returned it&lt;/EM&gt;! If you're a business&amp;nbsp;tier developer, you are just as responsible for data validation as the database developer!&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Alas, if you're reading this post you're already one of the converted.&amp;nbsp;This is SQLblog.com, so you obviously care enough about your data to read up on it a bit more.&amp;nbsp;But as developers who know the value and importance of data, it is our job to spread the data gospel.&amp;nbsp;Data issues around security, validation, and performance are every developer's&amp;nbsp;responsibility.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://www2.sqlblog.com/aggbug.aspx?PostID=2744" width="1" height="1"&gt;</description><category domain="http://www2.sqlblog.com/blogs/adam_machanic/archive/tags/Security/default.aspx">Security</category><category domain="http://www2.sqlblog.com/blogs/adam_machanic/archive/tags/code+samples/default.aspx">code samples</category><category domain="http://www2.sqlblog.com/blogs/adam_machanic/archive/tags/developers/default.aspx">developers</category></item><item><title>Log Buffer #21: A Carnival of the Vanities for DBAs</title><link>http://www2.sqlblog.com/blogs/adam_machanic/archive/2006/12/01/log-buffer-21.aspx</link><pubDate>Fri, 01 Dec 2006 11:00:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:386</guid><dc:creator>Adam Machanic</dc:creator><slash:comments>13</slash:comments><comments>http://www2.sqlblog.com/blogs/adam_machanic/comments/386.aspx</comments><wfw:commentRss>http://www2.sqlblog.com/blogs/adam_machanic/commentrss.aspx?PostID=386</wfw:commentRss><description>&lt;p class="MsoNormal"&gt;Hello, there!&lt;span&gt;&amp;nbsp; &lt;/span&gt;You’ve somehow managed to navigate your way through the blogosphere and into the 21st edition of &lt;a href="http://www.pythian.com/blogs/about-log-buffer"&gt;Log Buffer&lt;/a&gt;.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;It’s fitting that this is the 21st edition, because that just so happens to be the legal drinking age here in the United States. And the folks over at &lt;a href="http://www.oracle.com/index.html"&gt;Oracle&lt;/a&gt; sure need a drink or three this week. &lt;a href="http://www.computerworld.com/"&gt;Computerworld’s&lt;/a&gt; Jaikumar Vijayan reported on &lt;a href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;amp;articleId=9005383"&gt;a study showing that Oracle has more security flaws than SQL Server&lt;/a&gt;. And over at IT Toolbox, &lt;a href="http://blogs.ittoolbox.com/database/technology"&gt;Chris Eaton&lt;/a&gt; was nice enough to &lt;a href="http://blogs.ittoolbox.com/database/technology/archives/oracle-gets-two-black-eyes-on-security-in-one-week-13099"&gt;link us to the actual study&lt;/a&gt;, and in his post also mentioned that a security firm called &lt;a href="http://www.argeniss.com/"&gt;Argeniss&lt;/a&gt; had promised to release one Oracle security flaw every day this week. &lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;The &lt;a href="http://www.integrigy.com/oracle-security-blog"&gt;Oracle Security Blog's&lt;/a&gt; &lt;a href="http://www.integrigy.com/oracle-security-blog/archive/2006/11/28/zero-day-week-suspended"&gt;update on the topic&lt;/a&gt;, posted a few days after Chris's post, reveals that the week of disclosure is not happening -- at least, not quite yet (Argeniss apparently temporarily "suspended" the project).&lt;span&gt;&amp;nbsp; &lt;/span&gt;But don’t worry!&lt;span&gt;&amp;nbsp; &lt;/span&gt;If you just can’t live without that sticky-sweet feeling of bliss that accompanies finding a particularly nasty hole in someone else's software, head on over to &lt;a href="http://awads.net/wp/"&gt;Eddie Awad's&lt;/a&gt; blog, where you can learn how to &lt;a href="http://awads.net/wp/2006/11/29/see-how-to-hack-oracle-using-dangling-cursor-snarfing/"&gt;snarf a dangling cursor&lt;/a&gt;. And now I will sit back and watch as my inclusion of that phrase gets this post banned by all of my readers' corporate indecency filters. Snarf on!&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;For those &lt;strike&gt;serve up your customers' data to hackers on a silver platter&lt;/strike&gt; live-on-the-edge types in the audience who have time to worry about anything non-security-related amidst all of the concerns being raised,&lt;span&gt;&amp;nbsp; &lt;/span&gt;there were a few interesting tidbits posted this week. &lt;a href="http://www.dizwell.com/prod/blog/1"&gt;Edgar Hoover&lt;/a&gt; dished up some &lt;a href="http://www.dizwell.com/prod/node/421"&gt;tips on using functional indexes in 9i&lt;/a&gt;. And &lt;a href="http://technology.amis.nl/blog/"&gt;Lucas Jellema&lt;/a&gt; showed us a way to &lt;a href="http://technology.amis.nl/blog/?p=1413"&gt;avoid long strings of UNION ALL'd queries&lt;/a&gt; when trying to create "dummy" data. But if you're running on Linux, good luck using these tips at all! &lt;a href="http://krow.livejournal.com/"&gt;Brian Aker&lt;/a&gt; clued us into the fact that &lt;a href="http://krow.livejournal.com/463145.html"&gt;most installations are incredibly instable and that there just aren't enough experts around to fix the problems&lt;/a&gt;. "Free" operating system. Expensive consultant needed to fix it. What doesn't add up here?&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;For better or for worse, life in the &lt;a href="http://www.mysql.com/"&gt;MySQL&lt;/a&gt; camp was not nearly so exciting this week. &lt;a href="http://blog.arabx.com.au/"&gt;Ronald&lt;/a&gt; wrote an interesting post about &lt;a href="http://blog.arabx.com.au/?p=393"&gt;Pluggable Storage Engines&lt;/a&gt;, but to me it sounds like it's just metadata management given a snazzy new name. And over at the &lt;a href="http://marist89.blogspot.com/"&gt;So What Co-operative&lt;/a&gt; blog, Jeff Hunter got some flack because he implied in a post that &lt;a href="http://marist89.blogspot.com/2006/11/where-am-i-deploying-mysql-revisited.html"&gt;MySQL isn’t ready for prime time&lt;/a&gt; (i.e., no mission critical apps). For shame, Jeff! Rounding things out was a good post by &lt;a href="http://feedblog.org/"&gt;Kevin Burton&lt;/a&gt; all about &lt;a href="http://www.feedblog.org/2006/11/ethernet_latenc.html"&gt;Ethernet latency and how it can affect database performance&lt;/a&gt;.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;It's life as usual for the &lt;a href="http://www.postgresql.org/"&gt;PostgreSQL&lt;/a&gt; and &lt;a href="http://www-306.ibm.com/software/data/db2/"&gt;DB2&lt;/a&gt; crowds. &lt;a href="http://blogs.ittoolbox.com/database/soup"&gt;Josh the PostgreSQL lead&lt;/a&gt; posted not &lt;a href="http://blogs.ittoolbox.com/database/soup/archives/postgresql-application-performance-tips-part-1-13172"&gt;one&lt;/a&gt;, but &lt;a href="http://blogs.ittoolbox.com/database/soup/archives/postgresql-application-performance-tips-part-2-13194"&gt;two&lt;/a&gt; articles containing performance tips. And &lt;a href="http://blogs.ittoolbox.com/database/db2zos"&gt;Willie Favero&lt;/a&gt; pointed out the availability of a couple of new IBM Red Books: One covers the &lt;a href="http://blogs.ittoolbox.com/database/db2zos/archives/new-draft-redbook-available-powering-soa-with-ibm-data-servers-13170"&gt;oh-so-popular topic of SOA&lt;/a&gt;, and the other is all about &lt;a href="http://blogs.ittoolbox.com/database/db2zos/archives/new-draft-redbook-available-lobs-with-db2-for-zos-stronger-and-faster-13169"&gt;LOB data&lt;/a&gt;.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;Which brings us nicely around to the world of &lt;a href="http://www.microsoft.com/sql/default.mspx"&gt;SQL Server&lt;/a&gt;. You didn’t think I'd forgotten, did you? A good post came from &lt;a href="http://sqlservercode.blogspot.com/"&gt;Denis the SQL Menace&lt;/a&gt;, who brought to light a not very well publicized feature of SQL Server 2005: the ability to tell the engine to &lt;a href="http://sqlservercode.blogspot.com/2006/11/auto-update-statistics-asynchronously.html"&gt;update statistics asynchronously&lt;/a&gt;. But this week's highlight came from &lt;a href="http://weblogs.sqlteam.com/mladenp/Default.aspx"&gt;Mladen Prajdic&lt;/a&gt;, who discussed an interesting way to get &lt;a href="http://weblogs.sqlteam.com/mladenp/archive/2006/11/29/35688.aspx"&gt;high-precision performance metrics in SQL Server, via a few SQLCLR routines&lt;/a&gt;. The only problem with Mladen's technique is that it appears to only work on a single thread at a time. Still, it's definitely an interesting technique to consider, and a great SQLCLR sample to keep around.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;In the SQL Server tools department, we were informed by &lt;a href="http://simple-talk.com/community/blogs/bart/default.aspx"&gt;Bart Reed&lt;/a&gt; of &lt;a href="http://www.red-gate.com/"&gt;Red Gate&lt;/a&gt; that &lt;a href="http://simple-talk.com/community/blogs/bart/archive/2006/11/24/8133.aspx"&gt;SQL Prompt 3 might actually be coming some day&lt;/a&gt;! I was in the beta for this product, and I have to say that it's looking pretty interesting -- I definitely hope that some day is sooner rather than later, so get back to work and stop blogging, Bart! Luckily, we don't have to wait for Red Gate to get some enhancements to SQL Server Management Studio. &lt;a href="http://blogs.msdn.com/sqlrem/"&gt;Paul A. Mestemaker II&lt;/a&gt; provided &lt;a href="http://blogs.msdn.com/sqlrem/archive/2006/11/20/custom-reports-in-management-studio.aspx"&gt;detailed information on how to add a custom report to Management Studio in SQL Server 2005 SP2&lt;/a&gt;. And low and behold, &lt;a href="http://sqlblogcasts.com/blogs/sqldbatips/default.aspx"&gt;Jasper Smith&lt;/a&gt; has already published a very useful report, a &lt;a href="http://sqlblogcasts.com/blogs/sqldbatips/archive/2006/11/21/custom-ssms-reports-in-sp2-enterprise-manager-taskpad-view.aspx"&gt;recreation of the much-missed Taskpad View from Enterprise Manager&lt;/a&gt;.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;Since not everything in our industry is product-dependent (well, it's not supposed to be), let's not forget that database design is a more or less transferable skill -- at least, if you have any clue about what you're doing. The first consideration is usually data types, but as &lt;a href="http://tkyte.blogspot.com/"&gt;Tom Kyte&lt;/a&gt; pointed out, &lt;a href="http://tkyte.blogspot.com/2006/11/see-you-just-cannot-make-this-stuff-up.html"&gt;some people just don't get the difference between strings and all of those other newfangled types&lt;/a&gt; (as an aside: it was an Oracle person… should we be surprised?)&lt;span&gt;&amp;nbsp; &lt;/span&gt;Apparently it was &lt;a href="http://www.db2portal.com/2006/11/character-versus-numeric-data-types.html"&gt;character types vs. the world&lt;/a&gt; week in DB2 land as well, because &lt;a href="http://www.db2portal.com/blog.html"&gt;Craig Mullins&lt;/a&gt; also weighed in with a post on the topic.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;To close, I'd like to point out that despite Eddie Awad's &lt;a href="http://awads.net/wp/2006/11/28/do-you-have-these-symptoms/"&gt;concerns about laziness&lt;/a&gt;, I believe that all of the best computer professionals are lazy at heart. That's why we use macros, create shortcuts, and script/automate everything. We don't like working any more than we have to! And that is why I'll leave it to not-so-lazy people -- like &lt;a href="http://www.celko.com/"&gt;Joe Celko&lt;/a&gt; -- to come up with information on techniques such as an &lt;a href="http://joecelkothesqlapprentice.blogspot.com/2006/11/one-to-one-random-mapping-between-int.html"&gt;additive congruenital method of generating values in pseudo-random order&lt;/a&gt;. Uh, yeah.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;So with pseudo-randomness in mind, I bid you, kind reader, adieu. And remember to watch out for those pesky dangling cursors! There's no worse feeling than coming in on a Monday morning and settling down with that first hot cup of coffee, only to discover that you've been snarfed over the weekend.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;img src="http://www2.sqlblog.com/aggbug.aspx?PostID=386" width="1" height="1"&gt;</description><category domain="http://www2.sqlblog.com/blogs/adam_machanic/archive/tags/Oracle/default.aspx">Oracle</category><category domain="http://www2.sqlblog.com/blogs/adam_machanic/archive/tags/Security/default.aspx">Security</category><category domain="http://www2.sqlblog.com/blogs/adam_machanic/archive/tags/MySQL/default.aspx">MySQL</category><category domain="http://www2.sqlblog.com/blogs/adam_machanic/archive/tags/PostgreSQL/default.aspx">PostgreSQL</category></item></channel></rss>