<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.sqlservercentral.com/blogs/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>K. Brian Kelley - Databases, Infrastructure, and Security</title><link>http://www.sqlservercentral.com/blogs/brian_kelley/default.aspx</link><description>IT Security, MySQL, Perl, SQL Server, and Windows technologies.
</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Always Striving to Improve</title><link>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/11/07/always-striving-to-improve.aspx</link><pubDate>Sat, 07 Nov 2009 14:51:00 GMT</pubDate><guid isPermaLink="false">70975365-724d-4ce8-8d1c-45c963ab81ff:15550</guid><dc:creator>K. Brian Kelley</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/rsscomments.aspx?PostID=15550</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/commentapi.aspx?PostID=15550</wfw:comment><comments>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/11/07/always-striving-to-improve.aspx#comments</comments><description>&lt;p&gt;I&amp;#39;m enjoying a relaxing Saturday morning and I&amp;#39;m doing a bit of reading on &lt;a class="null" href="http://www.espn.go.com/"&gt;ESPN&lt;/a&gt;. &amp;nbsp;I see the article about &lt;a class="null" href="http://sports.espn.go.com/nba/recap?gameId=291106013"&gt;Kobe&amp;nbsp;reaching another scoring milestone&lt;/a&gt; and decide to give it a read. I&amp;#39;m admittedly a Lakers fan; I&amp;nbsp;have been since I first watched Byron Scott knocking down outside shots. So naturally, I enjoy reading up on the Lakers and what their players are doing. It&amp;#39;s a normal sports article talking about Kobe&amp;#39;s scoring, and I begin to yawn, and then I see this:&lt;/p&gt;
&lt;p style="PADDING-LEFT:30px;"&gt;&lt;em&gt;Bryant visited Olajuwon over the summer to learn more about low-post play, and the Houston Rockets&amp;#39; famed center provided Kobe with even more skills to keep knocking down scoring marks.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Now that caught my attention. Here is a guy who just won the NBA championship... again. He&amp;#39;s won a scoring title. He&amp;#39;s considered the greatest closer in the game. Yes, even over Bron Bron. Don&amp;#39;t believe me? go back and watch the end of the gold medal game against China. We were going to lose. And Kobe took over. Everybody, including Lebron, deferred to Kobe. And USA won. USA won because when Kobe gets that glint in his eye, nobody can stop him. He has too many offensive options. And if he&amp;nbsp;happens to get hot as he&amp;#39;s taking over a game? It&amp;#39;s over and over in a hurry. He can beat you inside. He can beat you outside. He can beat in the low post or driving the paint. He can beat you when you&amp;#39;re sleeping in your bed and he&amp;#39;s two zones away watching Lionel Messi light it up on the pitch. So if anyone doesn&amp;#39;t need to worry about his offensive game, it&amp;#39;s Kobe. But Kobe obviously didn&amp;#39;t rest on his laurels. He went and visited Hakeen &amp;quot;The Dream&amp;quot; Olajuwon to work on low-post play. Olajuwon had that post-up fade away jump shot no one could stop. He could up and under on a spin move that was equally unstoppable. It was all part of his &amp;quot;Dream Shake&amp;quot; package. And that&amp;#39;s who &lt;a class="null" href="http://www.youtube.com/watch?v=vww3lmLQQGM"&gt;Kobe went to learn from&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;And that reminded me that I can never stop learning. There&amp;#39;s always more to do. There&amp;#39;s always more to understand. If Kobe can go to Olajuwon, I can go to the top folks in whatever field or endeavor I&amp;#39;m working on, whether it be SQL Server, the Bible, flute, cooking, chess, or something else. Speaking of chess, I&amp;#39;ll end on another guy who hasn&amp;#39;t stopped, &lt;a class="null" href="http://en.wikipedia.org/wiki/Victor_Korchnoi"&gt;Victor Korchnoi&lt;/a&gt;. At the age of 78 he won the Swiss Chess Championship. He continues to play&amp;nbsp;well at grandmaster levels, despite his advanced age. That&amp;#39;s an inspiration to keep pushing hard to grow and do better if there ever was one.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.sqlservercentral.com/blogs/aggbug.aspx?PostID=15550" width="1" height="1"&gt;</description><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/Training/default.aspx">Training</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/professional+development/default.aspx">professional development</category></item><item><title>OFF-TOPIC: Surviving, Missing Folks, Glad I'm Home</title><link>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/11/06/off-topic-surviving-missing-folks-glad-i-m-home.aspx</link><pubDate>Fri, 06 Nov 2009 07:16:00 GMT</pubDate><guid isPermaLink="false">70975365-724d-4ce8-8d1c-45c963ab81ff:15537</guid><dc:creator>K. Brian Kelley</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/rsscomments.aspx?PostID=15537</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/commentapi.aspx?PostID=15537</wfw:comment><comments>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/11/06/off-topic-surviving-missing-folks-glad-i-m-home.aspx#comments</comments><description>&lt;p&gt;I certainly wish circumstances were different and I would have been able to attend the &lt;a class="null" href="http://www.sqlpass.org/"&gt;PASS Summit&lt;/a&gt; this week. I miss being part of the active community and seeing old friends and meeting new ones, but I&amp;#39;m glad I was here at home. Being home means I&amp;#39;ve been able to tend to my wife. That&amp;#39;s my job, more so than any regular employment or professional commitment. She&amp;#39;s recovering, still in pain, requiring the Motrin that was prescribed. She&amp;#39;s also still very tired as her body heals up from the pregnancy. Once we found out the twins had passed, they went through a process to induce similar to a normal pregnancy and birth, so her body is recovering just as it would from a regular pregnancy. And that means she gets tired more easily. I&amp;#39;ve seen her regain more of her strength each day, but she still gets more tired than she does normally. Being here means I can take on kid wrangling, fix the meals (although this has been made easier since&amp;nbsp;our church family has, with grace and generosity, provided all of her dinners and some of our lunches since Sunday night), and take care of other things that she might not feel up to do. So we&amp;#39;re surviving, we&amp;#39;re not over the physical part yet, and I know it&amp;#39;ll be a while for us to recover emotionally and mentally.&lt;/p&gt;
&lt;p&gt;Speaking of which, I went back to some advice my dad gave me after we found out the news. He made a point of telling me to ensure that our four year-old wasn&amp;#39;t neglected. He had been through this when his mother lost her twins, and as the baby of the family, he felt like he was kind of shoved to the side. This is something he still remembers in a very raw and painful way. While he knows that it wasn&amp;#39;t intentional, that doesn&amp;#39;t erase the memory of the pain he felt. Now my father is a retired Marine Gunnery Sergeant (like fellow Kelley/Kelly, &lt;a class="null" href="http://sqlblog.com/blogs/andrew_kelly/default.aspx"&gt;Andy Kelly&lt;/a&gt;) and he&amp;#39;s an old-school Marine among old-school Marines. So he typically keeps his emotions close to his vest. I know for him to share that meant it was a pretty significant memory and a time of great pain in his life. As a result, we&amp;#39;ve purposely have looked to ensure all three kids have received a good deal of attention. This includes my oldest, who will soon be turning 12, because of his age and his tenderness I think he took the hit almost as hard as Kimberly and I did. He has always had a tender and loving heart. It&amp;#39;s one of the things about him I can&amp;#39;t take any credit for but I&amp;#39;m extremely proud of him over. But it also means in times like this he hurts and hurts a lot. &lt;/p&gt;
&lt;p&gt;&lt;img style="MARGIN:5px;FLOAT:right;" src="http://www.sqlservercentral.com/blogs/blogs/brian_kelley/Books/PoetryOfPiety_.jpg" width="240" height="240" alt="" /&gt;In order to cope I&amp;#39;ve turned more to reading and to music, both playing and listening. Hymns and &lt;a class="null" href="http://gkdba.wordpress.com/2009/11/05/arturo-sandoval-a-recipe-for-helping-cope-with-loss/"&gt;jazz music&lt;/a&gt; are certainly a salve for my soul. I&amp;#39;ve also delved back into poetry, specifically poems of faith. Thankfully, I&amp;#39;ve got a great library here in Columbia, SC, and it had a book entitled &lt;em&gt;The Poetry of Piety&lt;/em&gt;. I don&amp;#39;t see it available for order anywhere any longer, or I would link to it, but it&amp;#39;s been a good read thus far. I&amp;#39;m barely into chapter two, and I&amp;#39;ve enjoyed what I&amp;#39;ve read. &lt;/p&gt;
&lt;p&gt;&lt;em&gt;(Editorial Warning: If you&amp;#39;re not interested in hearing about matters of faith because that&amp;#39;s not why you follow this blog, then what follows is exactly that. Just wanted to give you fair warning.)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;For instance, chapter one covered &lt;a class="null" href="http://en.wikipedia.org/wiki/Walter_Raleigh"&gt;Sir Walter Raleigh&amp;#39;s&lt;/a&gt; epitaph, which was:&lt;/p&gt;
&lt;p style="PADDING-LEFT:30px;"&gt;Even such is Time, which takes in trust&lt;br /&gt;Our youth, our joys, and all we have,&lt;br /&gt;And pays us but with age and dust;&lt;br /&gt;Who in the dark and silent grave,&lt;br /&gt;When we have wandered all our ways,&lt;br /&gt;Shuts up the story of our days.&lt;br /&gt;But from which earth and grave and dust&lt;br /&gt;The Lord shall raise me up, I trust.&lt;/p&gt;
&lt;p&gt;The message of this epitaph is that time will eventually get us. The joys and energy we have in our youth will succumb to old age and then eventually death. It&amp;#39;s an inevitable marching in that direction. However, Sir Walter Raleigh was putting his trust in the promise that God would raise Him up again in the future. This is a central message of Christianity, and it was one he was holding tight to. The book points out that this epitaph was reportedly written the night before his execution, and if that&amp;#39;s the case, is a reflection of the final thoughts of a man who had done and seen much in life. He didn&amp;#39;t reflect upon his accomplishments or his family or anything else except a promise from his faith. This was a welcome reminder that I believe in something more than this present life. And that I believe that there is hope beyond what I can touch and see. I know some would think I&amp;#39;m naive, silly, foolish, an idiot, or even a bit unstable because I cling to such faith. But in a time such as the present, that faith has steered me through. It has always steered me through, both in rough times and in good ones. And I hope to end life with a similar sentiment and conviction as Sir Walter Raleigh did.&lt;/p&gt;&lt;img src="http://www.sqlservercentral.com/blogs/aggbug.aspx?PostID=15537" width="1" height="1"&gt;</description><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/off-topic/default.aspx">off-topic</category></item><item><title>Not Attending/Presenting at SQL Connections</title><link>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/11/01/not-attending-presenting-at-sql-connections.aspx</link><pubDate>Sun, 01 Nov 2009 04:19:00 GMT</pubDate><guid isPermaLink="false">70975365-724d-4ce8-8d1c-45c963ab81ff:15398</guid><dc:creator>K. Brian Kelley</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/rsscomments.aspx?PostID=15398</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/commentapi.aspx?PostID=15398</wfw:comment><comments>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/11/01/not-attending-presenting-at-sql-connections.aspx#comments</comments><description>&lt;p&gt;Given everything that has happened in the last couple of weeks, this is not surprising to those who have kept up with my family&amp;#39;s most recent struggle. I had one more big decision to make from a professional side of things and that was whether or not to still attend and present at &lt;a class="null" href="http://www.devconnections.com/shows/FALL2009SQL/default.asp?s=137"&gt;SQL Connections&lt;/a&gt;. With Kimberly&amp;#39;s physical recovery time being at least two weeks, that was an easy decision to make.&amp;nbsp;I will be staying at home, tending to my beloved bride, as she heals physically. The emotional healing for both of us&amp;nbsp;is going to take much longer, but the warmth and love from our family, friends, church, and the wonderful SQL Server community has helped that process tremendously. Many of your comments have brought tears to our eyes as we have read them. Thank you.&lt;/p&gt;
&lt;p&gt;One of the reasons I love our SQL Server community is because of the caring I&amp;#39;ve seen within it. It transcends a common love for a particular technology to manifest itself in compassion and caring for one another. And that makes me very glad and very humble to be a part of it. We have a truly great and wonderful community. &lt;/p&gt;&lt;img src="http://www.sqlservercentral.com/blogs/aggbug.aspx?PostID=15398" width="1" height="1"&gt;</description><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/Conferences_2F00_User+Groups/default.aspx">Conferences/User Groups</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/Training/default.aspx">Training</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/professional+development/default.aspx">professional development</category></item><item><title>OFF-TOPIC: God is Still Good, Even as We Mourn</title><link>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/10/30/off-topic-god-is-still-good-even-as-we-mourn.aspx</link><pubDate>Fri, 30 Oct 2009 15:53:00 GMT</pubDate><guid isPermaLink="false">70975365-724d-4ce8-8d1c-45c963ab81ff:15346</guid><dc:creator>K. Brian Kelley</dc:creator><slash:comments>26</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/rsscomments.aspx?PostID=15346</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/commentapi.aspx?PostID=15346</wfw:comment><comments>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/10/30/off-topic-god-is-still-good-even-as-we-mourn.aspx#comments</comments><description>&lt;p&gt;Kimberly and I went to the high risk doctor&amp;#39;s office this morning for the ultrasound. Unfortunately, they realized very quickly that both children had passed away. There was no heartbeat. They suspect &lt;a class="null" href="http://en.wikipedia.org/wiki/Twin-to-twin_transfusion_syndrome"&gt;Twin-to-Twin Transfusion syndrome&lt;/a&gt;.&amp;nbsp;We are in mourning and have begun the procedures to ensure Kimberly&amp;#39;s health. Support from friends, family, our church, and the SQL community has been awesome. Thank you all. I&amp;#39;ll close on this:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A Path of Sorrow&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;In memoriam of our twins.&lt;br /&gt;&lt;br /&gt;&lt;/em&gt;We&amp;#39;ve walked this path before, You and I,&lt;br /&gt;Where my heart was shredded and in despair.&lt;br /&gt;But I will proclaim to all who will hear,&lt;br /&gt;&amp;quot;God is good, even in these times of pain.&amp;quot;&lt;br /&gt;&lt;br /&gt;I remember the past. I remember the agony.&lt;br /&gt;I remember facing an ended future.&lt;br /&gt;There was nothing I could do but suffer,&lt;br /&gt;Except trust and lean on You by faith.&lt;br /&gt;&lt;br /&gt;I had tried it my way and I had failed.&lt;br /&gt;There was nothing I could do to overcome.&lt;br /&gt;And then You held me up and soothed me.&lt;br /&gt;You spoke loving words of grace and mercy.&lt;br /&gt;&lt;br /&gt;You delivered a miracle and You healed me.&lt;br /&gt;You did what the doctors could not explain.&lt;br /&gt;You restored my future I knew was lost.&lt;br /&gt;And You gave me a hope I&amp;#39;ll never lose.&lt;br /&gt;&lt;br /&gt;Nothing happens outside of Your control.&lt;br /&gt;And I know that even as I mourn deeply,&lt;br /&gt;You stand beside me with Your arms around me.&lt;br /&gt;You are here in the midst of my pain.&lt;br /&gt;&lt;br /&gt;So I will praise You with every breath.&lt;br /&gt;I will proclaim Your greatness to all.&lt;br /&gt;For I&amp;#39;ve walked this path with You before.&lt;br /&gt;And I see You&amp;#39;re beside me yet again.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.sqlservercentral.com/blogs/aggbug.aspx?PostID=15346" width="1" height="1"&gt;</description><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/off-topic/default.aspx">off-topic</category></item><item><title>SQL University: Multiple Paths and Ownership Chaining</title><link>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/10/30/sql-university-multiple-paths-and-ownership-chaining.aspx</link><pubDate>Fri, 30 Oct 2009 05:44:00 GMT</pubDate><guid isPermaLink="false">70975365-724d-4ce8-8d1c-45c963ab81ff:15321</guid><dc:creator>K. Brian Kelley</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/rsscomments.aspx?PostID=15321</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/commentapi.aspx?PostID=15321</wfw:comment><comments>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/10/30/sql-university-multiple-paths-and-ownership-chaining.aspx#comments</comments><description>&lt;p&gt;Welcome back to&amp;nbsp;our last class this term on security in SQL Server here at &lt;a class="null" href="http://sqlchicken.com/sql-university/"&gt;SQL University&lt;/a&gt;. According to the &lt;a class="null" href="http://sqlchicken.com/2009/10/sql-universityfall-2009-syllabus/"&gt;syllabus&lt;/a&gt;, you should be picking up history next week with Jorge Segarra. SQL Server has a rich history. I know you&amp;#39;ll enjoy the coming week. However, before&amp;nbsp;we move on, let&amp;#39;s close on some intermediate security topics. First let&amp;#39;s talk about something I call &amp;quot;multiple paths.&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;quot;Hi, my name Is... What? My name is...&amp;quot;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Within Windows, a Windows user can be a member of numerous security groups. And the way permissions work, permissions can be assigned to any, all, or none of those security groups. For instance, when I was an infrastructure and security architect, I wore several hats. Each of those hats was mapped to a security group. So if you looked at my membership, here&amp;#39;s what you would have seen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Domain Admins&lt;/li&gt;
&lt;li&gt;Server Admins&lt;/li&gt;
&lt;li&gt;DBAs&lt;/li&gt;
&lt;li&gt;Perimeter Security Admins&lt;/li&gt;
&lt;li&gt;Incident Response Team Members&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;It&amp;#39;s entirely possible to allow multiple security groups to connect to SQL Server. For instance, on a particular SQL Server, Server Admins could be allowed in as well as DBAs. DBAs would have full rights over the SQL Server. Server Admins would have rights to use a couple of databases, but not all the databases on the SQL Server. So when&amp;nbsp;I come into SQL Server, who am I? It looks like a complicated mess, but really it&amp;#39;s not. I&amp;#39;m both a member of DBAs and a member of Server Admins. So as far as SQL Server is concerned,&amp;nbsp;I come in as both. That&amp;#39;s right, both. So that raises the next question: What are my permissions?&lt;/p&gt;
&lt;p&gt;&lt;img style="MARGIN:5px;FLOAT:left;" src="http://www.sqlservercentral.com/blogs/blogs/brian_kelley/Security/Lockers.jpg" width="216" height="209" alt="" /&gt;If you remember back to &lt;a class="null" href="http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/10/27/sql-university-diving-into-authorization.aspx"&gt;last class&lt;/a&gt;, I talked about how you could have multiple permission sets. We used the example of three sets, which I called sets A, B, and C. And we talked about how the permissions added up, unless there was a DENY involved. Well, what we were discussing then is possible based on the situation I&amp;#39;m presenting now. I&amp;#39;m authenticated by SQL Server against the login for Server Admins and against the login for DBAs. And since the DBAs have complete control over the SQL Server, I have complete control over the SQL Server. &lt;/p&gt;
&lt;p&gt;Let&amp;#39;s take another example. Assume I&amp;#39;m not longer in the DBAs security group. Let&amp;#39;s say the Server Admins have access to a database called ServerInventory. The Incident Response Team Members have access to a database called IncidentResponse. And there&amp;#39;s another database called DBAsOnly that only the DBAs can get into. Since I&amp;#39;m a member of Server Admins, I have access to ServerInventory. Since I&amp;#39;m a member of the Incident Response Team Members I also have access to IncidentResponse. But since I&amp;#39;m no longer a member of DBAs, I do &lt;strong&gt;&lt;u&gt;not&lt;/u&gt;&lt;/strong&gt; have access to DBAsOnly. Make sense?&lt;/p&gt;
&lt;p&gt;Another way to think of it is imagine a row of lockers, like back in high school. Being a member of Server Admins gives me a key to one locker (database). Being a member of Incident Response Team Members gives me a key to a different locker. The school (SQL Server) looks and sees I&amp;#39;m a member of both groups. Because of this, it hands me both keys. But since I&amp;#39;m not a member of DBAs, I&amp;#39;m not handed the key to the locker for DBAsOnly. Hopefully that gives you a visual picture of how SQL Server handles who you are. This is done both at the server level as well as at the individual database level. And because I can hold multiple keys (logins), those can map to multiple permission sets, like what we covered on Wednesday. Really, this is no different than file and folder permissions at the operating system level. It works the same way in SQL Server as it does in Windows.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;strong&gt;&amp;quot;Know your role!&amp;quot;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="MARGIN:5px;FLOAT:right;" src="http://www.sqlservercentral.com/blogs/blogs/brian_kelley/Security/TheRock.jpg" width="160" height="123" alt="" /&gt;The Rock had many sayings when he was in World Wrestling Entertainment (formerly the World Wrestling Federation), but among them was, &amp;quot;Know your role!&amp;quot; When it comes to SQL Server, this saying is important. At the server level, it is possible to put a login into several pre-defined roles which we call fixed &lt;a class="null" href="http://msdn.microsoft.com/en-us/library/ms188659.aspx"&gt;server roles&lt;/a&gt;. These give a blanket set of permissions. Take, for instance, the sysadmin fixed server role. That role allows you to have complete control over the SQL Server. If a login is a member of that role, it can do anything within that SQL Server. And just like at the server level, there are roles at the database level, too. There are fixed &lt;a class="null" href="http://msdn.microsoft.com/en-us/library/ms189121.aspx"&gt;database roles&lt;/a&gt; which have preset permissions, just like server roles. There are also user-defined database roles. These are role you can create. They are just like Windows security groups in that they are designed to group together database users. Also, you can assign permissions against the role, just like with security groups. Therefore, at the database level, the best practice recommendation is straight-forward:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create roles with logical names that correspond to the different levels of permissions in your database.&lt;/li&gt;
&lt;li&gt;Assign database users to those roles.&lt;/li&gt;
&lt;li&gt;Grant permissions directly to the roles, not individual database users.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;strong&gt;Ownership Chaining&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ownership chaining is a feature of SQL Server. Basically if you have two objects, and they have the same owner, they can form an ownership chain. For instance, let&amp;#39;s say I have a table and a view. The view refers to the table. If both objects have the same owner, then I can have an ownership chain. Let&amp;#39;s say I have the ability to issue a SELECT against the view. But I have no permissions against the table. If I try to issue a SELECT directly against the table, I&amp;#39;ll get an Access Denied error. But if I issue a SELECT against the view, it works. It works even though the view hits the table. Why? Because SQL Server allows an ownership chain to form.&lt;/p&gt;
&lt;p&gt;Basically, SQL Server sees that the same user owns both objects. So it assumes that if the owner has built one object to refer to another, like our view referring to our table, the owner meant for the reference to work. And as a result, when you go from the view to the table, SQL Server won&amp;#39;t check permissions on the table. It will assume the owner knew what he or she was doing when the reference was created. We can use this to control access to the base tables in our databases. By controlling access through functions, stored procedures, and views, we can control how the data is displayed and how the data is manipulated. With ownership chaining, access to the base tables happens, but only through the methods we&amp;#39;ve explicitly built. So, for instance, this won&amp;#39;t work:&lt;/p&gt;
&lt;p style="PADDING-LEFT:30px;"&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;span style="COLOR:blue;"&gt;DELETE&amp;nbsp;FROM&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR:black;"&gt;dbo.SomeVeryBigTable&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="COLOR:gray;"&gt;&lt;font size="2" face="Courier New"&gt;; &lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR:black;"&gt;&lt;font size="2" face="Courier New"&gt;GO &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;If an end user tries to execute this, that person will receive an Access Denied type of error. This is good because imagine if they were able to execute it. Then we&amp;#39;re stuck in recovery mode and that&amp;#39;s bad. Now imagine we built a stored procedure like the following:&lt;/p&gt;
&lt;p style="PADDING-LEFT:30px;"&gt;&lt;span style="COLOR:blue;"&gt;&lt;font size="2" face="Courier New"&gt;CREATE&amp;nbsp;PROC&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;span style="COLOR:black;"&gt;dbo.ControlledDelete &lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR:#434343;"&gt;@SomeID&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="COLOR:blue;"&gt;&lt;font size="2" face="Courier New"&gt;INT &lt;br /&gt;AS &lt;br /&gt;BEGIN &lt;br /&gt;&amp;nbsp;&amp;nbsp;DELETE&amp;nbsp;FROM&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;span style="COLOR:black;"&gt;dbo.SomeVeryBigTable &lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;WHERE&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR:black;"&gt;SomeID&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="COLOR:#434343;"&gt;@SomeID&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;span style="COLOR:gray;"&gt;; &lt;br /&gt;&lt;/span&gt;&lt;span style="COLOR:blue;"&gt;END&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;span style="COLOR:gray;"&gt;; &lt;br /&gt;&lt;/span&gt;&lt;span style="COLOR:black;"&gt;GO&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;In this case the end user can still delete rows. But our stored procedure only allows the deletion of one row at a time, and you need to know the right ID. We now only have to grant EXECUTE rights against this stored procedure and everything will work as we&amp;#39;d like. We don&amp;#39;t have to grant any sort of permissions against the table itself. All right, enough on the theory. Let&amp;#39;s round out the week with a few demonstrations. Afterwards, look to our &lt;a class="null" href="http://www.thomaslarock.com/"&gt;coach&lt;/a&gt; for some drills to help you get stronger in SQL Server security.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Practical Demonstrations:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="null" href="http://www.sqlshare.com/fixed-server-roles-in-sql-server-2005_573.aspx"&gt;Fixed Server Roles in SQL Server 2005 (and 2008)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="null" href="http://www.sqlshare.com/fixed-db-roles-in-sql-server-2005_572.aspx"&gt;Fixed DB Roles in SQL Server 2005 (and 2008)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="null" href="http://www.sqlshare.com/creating-and-using-database-roles-in-sql-server_565.aspx"&gt;Creating and Using Database Roles in SQL Server (GUI only)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="null" href="http://www.mssqltips.com/tip.asp?tip=1778"&gt;Ownership chaining in SQL Server - security feature or security risk?&amp;nbsp; (article)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="null" href="http://www.mssqltips.com/tip.asp?tip=1813"&gt;Breaking ownership chaining within a schema in SQL Server&amp;nbsp; (article)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="null" href="http://www.mssqltips.com/tip.asp?tip=1822"&gt;Dynamic SQL and ownership chaining in SQL Server&amp;nbsp; (article)&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.sqlservercentral.com/blogs/aggbug.aspx?PostID=15321" width="1" height="1"&gt;</description><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/SQL+Server+2000/default.aspx">SQL Server 2000</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/SQL+Server+2005/default.aspx">SQL Server 2005</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/Security/default.aspx">Security</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/SQL+Server+Architecture/default.aspx">SQL Server Architecture</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/database+security/default.aspx">database security</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/SQL+Server+security/default.aspx">SQL Server security</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/SQL+University/default.aspx">SQL University</category></item><item><title>OFF-TOPIC: More about the pregnancy</title><link>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/10/29/off-topic-more-about-the-pregnancy.aspx</link><pubDate>Thu, 29 Oct 2009 15:57:00 GMT</pubDate><guid isPermaLink="false">70975365-724d-4ce8-8d1c-45c963ab81ff:15309</guid><dc:creator>K. Brian Kelley</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/rsscomments.aspx?PostID=15309</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/commentapi.aspx?PostID=15309</wfw:comment><comments>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/10/29/off-topic-more-about-the-pregnancy.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp;Quite a few folks have commented about my &lt;a class="null" href="http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/10/23/another-year-another-missed-pass-summit.aspx"&gt;previous post&lt;/a&gt; about missing the &lt;a class="null" href="http://summit2009.sqlpass.org/AboutSummit/ROI/tabid/63/Default.aspx"&gt;PASS Summit&lt;/a&gt;, whether publicly or in private. It&amp;#39;s hard to keep track of everybody who has, so this is a blanket blog post that explains what the doctors are concerned about.&lt;/p&gt;
&lt;p&gt;The condition that raised the red flag is this one: &lt;a class="null" href="http://en.wikipedia.org/wiki/Monoamniotic_twins"&gt;Monoamniotic-Monochrionic twins&lt;/a&gt;&amp;nbsp;(MoMo twins).&lt;/p&gt;
&lt;p&gt;During the 20 week ultrasound, the fact that there were twins caught everyone by surprise. But as they investigated, they could not see a membrane between the two. And that raises the question of whether or not they are MoMo twins or not. As a result, we&amp;#39;ve gotten a referral to specialist doctors at the &lt;a class="null" href="http://www.med.sc.edu/"&gt;University of South Carolina School of Medicine&lt;/a&gt;. It&amp;#39;ll be a three-hour ultrasound, with better equipment, mind you. We went through the same thing with our now four year-old daughter, so we at least know what to expect. It&amp;#39;s entirely possible that the membrane is there, then the risks go down quite a bit. There are still risks because there&amp;#39;s one placenta, but it&amp;#39;s less than with MoMo twins. &lt;/p&gt;
&lt;p&gt;Because we didn&amp;#39;t know when the referral would come, I ended up cancelling out of all the PASS Summit. We figured it would be next week and on Tuesday we were notified that it would be for next Tuesday. However, my wife has been in a lot of pain and her feet and ankles have been swelling badly, so she asked if they could work her in sooner. Yesterday they called back and we&amp;#39;ve got an appointment for Friday. The good news is that at least by the end of it we&amp;#39;ll be more certain as to what&amp;#39;s going on and what the path is. The bad news is that last weekend was rough on her and I don&amp;#39;t see it getting much better any time soon. So I&amp;#39;m really concerned about her and me and the boys (11 and 10) are doing what all we can to take on additional responsibilities and let her rest more. &lt;/p&gt;
&lt;p&gt;Last night was a struggle for me. I was up again because of my sleep habits (or lack thereof) and I spent a lot of time thinking about the situation, the possibilities, how to prepare for them, etc. And while I was able to walk through things logically, I was and still am worried. That&amp;#39;s reality and I know that&amp;#39;s normal. I ended up penning a poem to kind of get out how I feel. I&amp;#39;ll include it here in case it might be a help to others. It is intentionally written like a &lt;a class="null" href="http://www.biblegateway.com/passage/?search=Psalm+28&amp;amp;version=NASB"&gt;psalm&lt;/a&gt;. The reference to the father and son in the second stanza is from &lt;a class="null" href="http://www.biblegateway.com/passage/?search=Mark%209:14-29&amp;amp;version=NASB"&gt;Mark 9&lt;/a&gt;.&lt;/p&gt;
&lt;p style="PADDING-LEFT:30px;"&gt;&lt;span&gt;&lt;strong&gt;I Call Out to You, Lord&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="PADDING-LEFT:30px;"&gt;Lord, I can&amp;#39;t hide from You my heart.&lt;br /&gt;I&amp;#39;m worried and I&amp;#39;m scared.&lt;br /&gt;I don&amp;#39;t know what is to come.&lt;br /&gt;I know the tighter I try to hold on,&lt;br /&gt;The more I fool myself with a lie.&lt;br /&gt;&lt;br /&gt;I know the answer is to trust.&lt;br /&gt;I&amp;#39;m to lean on my faith in You.&lt;br /&gt;But knowing and doing are not the same.&lt;br /&gt;So I call out to You like that father&lt;br /&gt;Who sought healing for his son.&lt;br /&gt;&lt;br /&gt;Father, help me to be strong.&lt;br /&gt;Guide my thinking and my focus.&lt;br /&gt;Let me look to You and You alone.&lt;br /&gt;For I need to gaze upon You now&lt;br /&gt;So I will not falter and fall.&lt;br /&gt;&lt;br /&gt;Let me be filled with compassion&lt;br /&gt;And be a Spirit-led father and husband.&lt;br /&gt;Allow me to act with Your wisdom,&lt;br /&gt;Touch with Your love and understanding,&lt;br /&gt;And be a source of peace to my family.&lt;br /&gt;&lt;br /&gt;I offer my troubles to You, O God.&lt;br /&gt;Bear them away from me with haste.&lt;br /&gt;Let me see Your goodness and mercy.&lt;br /&gt;Show me Your beloved face&lt;br /&gt;So I may forge on with faith and hope.&lt;br /&gt;&lt;br /&gt;I yield to You now, my Strength and my Shield.&lt;br /&gt;I put my heart before You.&lt;br /&gt;Lift me up and comfort me today.&lt;br /&gt;For I cannot attain peace without You.&lt;br /&gt;Nor give it to the ones I love so much.&lt;/p&gt;&lt;img src="http://www.sqlservercentral.com/blogs/aggbug.aspx?PostID=15309" width="1" height="1"&gt;</description><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/off-topic/default.aspx">off-topic</category></item><item><title>SQL University: Diving into Authorization</title><link>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/10/27/sql-university-diving-into-authorization.aspx</link><pubDate>Wed, 28 Oct 2009 03:45:00 GMT</pubDate><guid isPermaLink="false">70975365-724d-4ce8-8d1c-45c963ab81ff:15257</guid><dc:creator>K. Brian Kelley</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/rsscomments.aspx?PostID=15257</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/commentapi.aspx?PostID=15257</wfw:comment><comments>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/10/27/sql-university-diving-into-authorization.aspx#comments</comments><description>&lt;p&gt;It&amp;#39;s good to see all your bright and chipper faces here at &lt;a class="null" href="http://www.sqlchicken.com/sql-university/"&gt;SQL University&lt;/a&gt;. Hopefully you&amp;#39;ve digest &lt;a class="null" href="http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/10/26/sql-university-authentication-and-authorization.aspx"&gt;Monday&amp;#39;s lesson on Authentication&lt;/a&gt;. Today we&amp;#39;re going to discuss Authorization. Now Authorization can only take place after Authentication has been accomplished. If SQL Server doesn&amp;#39;t know who you are, it can&amp;#39;t determine what you have access to. Therefore, if you&amp;#39;ve not gotten the class notes and looked at the videos, it may help you to review before proceeding further. If you&amp;#39;re caught up, let&amp;#39;s continue. Authorization is simply the permissions a particular person has. With respect to SQL Server, SQL Server is basically saying, &amp;quot;Once I know who you are, I can tell you what you are allowed to do.&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Permissions - A Game of &amp;quot;Simon Says&amp;quot;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you&amp;#39;ve ever played the game of &amp;quot;&lt;a class="null" href="http://en.wikipedia.org/wiki/Simon_Says"&gt;Simon Says&lt;/a&gt;,&amp;quot; you know that you only react to the instruction given when Simon says to do so. If you react to any other instruction, you&amp;#39;re out of the game. If Simon says to do something and you don&amp;#39;t, you&amp;#39;re out, too. SQL Server works kind of like Simon says. If you tell SQL Server that a certain permission is to be given to a user, then it&amp;#39;s like you played Simon says, only you are Simon. SQL Server will carry out that permission exactly as you said. So if you tell SQL Server that Jimbo has the ability to read data from a particular table (granting SELECT permissions on that table), then SQL Server will allow Jimbo to read data from that table whenever he asks for it. Likewise, SQL Server will &lt;strong&gt;&lt;u&gt;not&lt;/u&gt;&lt;/strong&gt; allow access if you do not give explicit permission. SQL Server is the ultimate Simon Says player. So if you don&amp;#39;t tell SQL Server that Jimbo can read data from that table, SQL Server won&amp;#39;t let him (with the exception of ownership chaining, which we&amp;#39;ll look at on Friday).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Securables - A Whole Lot of Tupperware&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="MARGIN:5px;FLOAT:right;" src="http://www.sqlservercentral.com/blogs/blogs/brian_kelley/Security/tupperware.jpg" width="200" height="150" alt="" /&gt;When I was growing up, &lt;a class="null" href="http://order.tupperware.com/coe/app/home"&gt;Tupperware&lt;/a&gt; was expensive. It&amp;#39;s not like today when I can run down to the &lt;a class="null" href="http://dollargeneral.com/Pages/index.aspx"&gt;Dollar General&lt;/a&gt; and pick up disposable containers for a couple of bucks. In SQL Server, starting with SQL Server 2005, there is a new concept called &lt;strong&gt;securables&lt;/strong&gt;. Securables, in a nutshell, are anything you can assign permissions against. There are also special types of securables called &lt;strong&gt;scopes&lt;/strong&gt;, which are nothing more than securables that can contain other securables. Within SQL Server there are three scopes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Server&lt;/li&gt;
&lt;li&gt;Database&lt;/li&gt;
&lt;li&gt;Schema&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Servers have securables like logins and endpoints as well as the securables/scopes databases. Databases have securables like users and symmetric keys as well as the securables/scopes schemas. And schemas have the securables we normally think of like tables, views, and stored procedures. That&amp;#39;s the hierarchy. Now, normally we grant permissions directly against tables, views, and stored procedures. So if I grant SELECT on a table, then the person can execute a SELECT query against the data in that table. If I think of Tupperware, my wife has given me permission to open up the Tupperware containing the salad. But the Tupperware containing the lasagna, well, that&amp;#39;s off limits. So I have SELECT rights against the Salad Tupperware but I have no rights against the Lasagna Tupperware. SQL Server is my wife, but&amp;nbsp;SQL Server is&amp;nbsp;always on duty. So if I try and open up that lasagna, I&amp;#39;m going to immediately get an Access Denied! &lt;/p&gt;
&lt;p&gt;Now let&amp;#39;s take this a step further. If you do it right, you can put smaller Tupperware containers inside larger Tupperware containers. This is the concept of using scopes in SQL Server. Imagine that the lasagna container fits inside the salad container. My wife has given me permission to open up the salad container. Lapsing back to my past as an 8 year-old boy, I interpret her permission as saying, &amp;quot;You can eat anything in the salad container. So I take the lasagna container and put it inside the salad container, dumping any salad that prevents the true prize from fitting. I close up the salad container and then say to myself, &amp;quot;Well, time to eat what&amp;#39;s in the salad container.&amp;quot; And then I proceed to open both containers, first the salad one, then the lasagna one, and eat the lasagna. Sure, my adult self knows I&amp;#39;m in trouble as soon as my wife catches on, but we&amp;#39;re talking &lt;a class="null" href="http://www.garfield.com/"&gt;lasagna&lt;/a&gt;! SQL Server operates as our eight year-old selves do. If you give the permission on the larger container, or scope, it applies to the securables contained within. For instance, if I give SELECT permission against a schema, all the tables and views contained in the schema that permission applies to as well. So we need to think about that when it comes to giving out permissions. We can either give it directly to the object (securable) in question or to the scope that contains it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GRANT, DENY, and REVOKE - Understand the Interaction&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="MARGIN:5px;FLOAT:left;" src="http://www.sqlservercentral.com/blogs/blogs/brian_kelley/Security/ace_of_spades.jpg" width="104" height="144" alt="" /&gt;GRANT gives the permission. So if I GRANT SELECT on a table, the person can read from the table. DENY blocks the permission. So if I DENY SELECT on a table, the person cannot read from the table. Also, DENY is a trump. If you&amp;#39;ve played the game of &lt;a class="null" href="http://en.wikipedia.org/wiki/Spades"&gt;Spades&lt;/a&gt;, all spades cards trump cards of any other suit, regardless of numeric value (so a two of spades will trump a 10 of diamonds or an ace of clubs). When you&amp;#39;ve got spade against spade, it&amp;#39;s all about numeric value. As a result, unless you&amp;#39;re playing with house rules which include jokers, nothing trumps the Ace of spades. The DENY is like the Ace of spades. It doesn&amp;#39;t matter what the other permissions are, if a particular person has a DENY, it will trump any GRANTs that the person may already have. And that bears explanation.&lt;/p&gt;
&lt;p&gt;It is possible for multiple sets of permissions to apply to a particular person. We&amp;#39;ll get into the how on Friday, but assume that three different sets of permissions apply to a particular person. Set A grants SELECT against a table. Set B grants INSERT and UPDATE against the same table. SQL Server will aggregate the permissions and give you the sum of all of them. So if we&amp;#39;re just considering sets A and B, the person has SELECT, INSERT, and UPDATE on the table. If you&amp;#39;ve worked with permissions at the file and folder level on the operating system, you should be familiar with this type of behavior. Now let&amp;#39;s look at set C. Set C has a DENY on UPDATE. Remember, DENY trumps everything. So the DENY on UPDATE in set C is going to trump the granted UPDATE in set B. So once we consider all 3 permission sets, the person really only has SELECT and INSERT.&lt;/p&gt;
&lt;p&gt;By the way, you can replace one for the other. So, for instance, assume set C should have been a granted UPDATE instead of DENY. &amp;nbsp;If you decide to replace DENY with the GRANT, you can do so simply by executing the GRANT permission. So when applied in the same manner (again, covered on Friday), they will replace each other. So if that&amp;#39;s the case, why do we need REVOKE? REVOKE is a giant eraser. If the person has a particular permission, REVOKE removes it. It doesn&amp;#39;t matter if it&amp;#39;s GRANT or DENY. Instead of overwriting the permission, it simply gets rid of it. So if we go back to set C, and we didn&amp;#39;t want to grant UPDATE permissions, but we wanted to get rid of the DENY, we could use REVOKE. If set C had permissions for other tables, we might not want to get rid of set C altogether. But we do need to correct the mistake without granting any additional permissions. In this case, REVOKE is ideal. It gets rids of the permission altogether. If the person doesn&amp;#39;t have permission via another mechanism, we&amp;#39;re back to that game of Simon Says again. Since Simon (or John or Marie or whoever you are) didn&amp;#39;t say the person should have access, then the person doesn&amp;#39;t gets access. If, however, the person had access through another means, such as set B, then the DENY is no longer there to block them.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Practical Application:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Okay, enough theory. Like last class, let&amp;#39;s see some of this in action. Again, the videos are around 5 minutes or shorter.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="null" href="http://www.sqlshare.com/understanding-sql-server-securables_634.aspx"&gt;Understanding SQL Server Securables&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="null" href="http://www.sqlshare.com/the-difference-between-grant-deny-and-revoke-in-sql-server_574.aspx"&gt;The Difference Between GRANT, DENY, and REVOKE in SQL Server&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="null" href="http://www.sqlshare.com/granting-permissions-against-a-database-object_575.aspx"&gt;Granting Permissions Against a Database Object (GUI only)&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.sqlservercentral.com/blogs/aggbug.aspx?PostID=15257" width="1" height="1"&gt;</description><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/SQL+Server+2005/default.aspx">SQL Server 2005</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/Security/default.aspx">Security</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/SQL+Server/default.aspx">SQL Server</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/database+security/default.aspx">database security</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/SQL+Server+security/default.aspx">SQL Server security</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/SQL+University/default.aspx">SQL University</category></item><item><title>SQL University: Authentication and Authorization</title><link>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/10/26/sql-university-authentication-and-authorization.aspx</link><pubDate>Mon, 26 Oct 2009 04:05:00 GMT</pubDate><guid isPermaLink="false">70975365-724d-4ce8-8d1c-45c963ab81ff:15182</guid><dc:creator>K. Brian Kelley</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/rsscomments.aspx?PostID=15182</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/commentapi.aspx?PostID=15182</wfw:comment><comments>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/10/26/sql-university-authentication-and-authorization.aspx#comments</comments><description>&lt;p&gt;Welcome back to class, folks, here at &lt;a class="null" href="http://sqlchicken.com/sql-university/"&gt;SQL University&lt;/a&gt;. This week we&amp;#39;re going to take a look at the basics of security for SQL Server. Since this is an introductory class, we&amp;#39;re going to focus primarily on SQL Server itself, only delving into the operating system when we have to do so. So let&amp;#39;s start with first steps. In security there are usually three As we&amp;#39;re concerned with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Authentication &lt;/strong&gt;- Can you prove you are who you say you are?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Authorization&lt;/strong&gt; - Okay, so you&amp;#39;ve proven it. Now, what do you have access to?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Auditing &lt;/strong&gt;- Can we track what you and others are doing?&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;While auditing is important, that&amp;#39;s a more advanced topic, so we&amp;#39;ll stick to the first two As: authentication and authorization. If you remember back to your &lt;a class="null" href="http://sqlchicken.com/2009/09/sql-university-basic-tools/" target="_blank"&gt;first week of class&lt;/a&gt;, we briefly talked about authentication. That&amp;#39;s what we&amp;#39;re gong to focus on today. Authorization will be for Wednesday&amp;#39;s class. And for Friday we&amp;#39;ll look at both in a bit more detail. Now, onto today&amp;#39;s material. One of the things we discussed is that either SQL Server can handle the authentication or it can pass it off to Windows. Windows authentication can also be called integrated security. Since Microsoft recommends using Windows authentication, let&amp;#39;s talk about why.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Windows Authentication - Ease of Use for the End User:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Imagine for a second that you&amp;#39;re the manager of an apartment complex and let&amp;#39;s say you&amp;#39;ve got 250 different apartments. Now, you&amp;#39;ve got two choices on how to handle &lt;em&gt;&lt;u&gt;your&lt;/u&gt;&lt;/em&gt; access to these apartments you&amp;#39;re responsible for. Either you can have 250 different keys or you can have one master key. Which would you choose? If it were me, I&amp;#39;d want one master key for me. Sure, the system needs to be able to handle issuing 250 different keys so one apartment dweller can&amp;#39;t get into the apartment of another, but for me and my maintenance staff, I need the master key. Otherwise I could sit there forever trying to figure out how to get into the one apartment where the toilet is overflowing and flooding the apartment below. Not a good situation if I have to sort through 250 different keys, right?&lt;/p&gt;
&lt;p&gt;Well, imagine your internal network is&amp;nbsp;like a huge apartment complex. And let&amp;#39;s say you have 250 different systems. If your end users have to enter a username/password combination for every system, your users would quickly grow upset. Even if we&amp;#39;re talking 5 to 10 systems, you&amp;#39;re going to hear grumbling. If you make it worse and they have to have different passwords for every system, you&amp;#39;ve really got trouble. Sooner or later they&amp;#39;re going to do things like keep a sticky note on their monitor with all of their combinations recorded. But if you can give them one key to access all of the systems, they&amp;#39;ll be very happy with you. And that&amp;#39;s one reason to use Windows authentication. Your users already have to use a username/password combination to log onto your Windows domain. If we can take those credentials and re-use them, they&amp;#39;ll be very happy. It also means they are less likely to do something like that sticky note trick. I did say less likely. Get used to it, because no matter how easy you make it on your users (unless you take passwords away altogether), someone is going to do it. In times like those, take the time to show &amp;#39;em right. Help them understand why it&amp;#39;s dangerous. And if you don&amp;#39;t get through the first time or the hundred and first time, keep at it. It&amp;#39;s important.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Windows Authentication -&amp;nbsp;&amp;quot;One Stop Shop&amp;quot;&amp;nbsp;Lockdown:&lt;img style="FLOAT:right;MARGIN-LEFT:5px;MARGIN-RIGHT:5px;" src="http://www.sqlservercentral.com/blogs/blogs/brian_kelley/Security/key-dnd.jpg" width="61" height="125" alt="" /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;But you know, it&amp;#39;s not just about ease of use for our end users. Imagine you went the 250 key method. Now you were trying to be smart and you got &lt;a class="null" href="http://en.wikipedia.org/wiki/Key_(lock)"&gt;keys marked Do Not Duplicate&lt;/a&gt;. While this isn&amp;#39;t an effective way to ensure they keys aren&amp;#39;t duplicated, let&amp;#39;s say, for example&amp;#39;s sake that it is. And one of your maintenance folks was caught doing something they ought not be doing (like stealing from one of the apartments). You now need to get all the keys back from that maintenance person. And he hands you 250 keys which look right. The question is, &amp;quot;How do you know?&amp;quot; The only way you&amp;#39;re going to be able to tell is to go through and try each key in the locks until you&amp;#39;re sure you have them all. After all, there&amp;#39;s nothing stopping the maintenance person for substituting several keys that look authentic but aren&amp;#39;t. And then your maintenance guy still has access to some of the apartments in the building. So unless you take the time to immediately verify all the keys, you have a problem. The same thing is true if you have folks with different username/password combination all over the place. You might be able to turn them off in one place, but unless you go system by system, you&amp;#39;ve got the same problem if someone&amp;#39;s access needs to be turned off.&lt;/p&gt;
&lt;p&gt;Now let&amp;#39;s go back to that master key idea. If you only issued them master keys, and you have some way of verifying they weren&amp;#39;t able to duplicate the master keys, once you get it back from the maintenance person you&amp;#39;re letting go, it&amp;#39;s a simple matter to try it in a handful of apartment locks to verify it&amp;#39;s real. And then you can kick the guy to the curb. Well, if Windows user accounts are being used, specifically domain user accounts, you have the same idea. You&amp;#39;ve got an employee who has been doing something they ought not do, and it&amp;#39;s time to take away their access as HR processes them out the door. If all access is through the domain, then as soon as I lock down that person&amp;#39;s domain user account, I have confiscated the master key. They aren&amp;#39;t going to get in anywhere. And that&amp;#39;s what we want.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Windows Authentication - Security Forces at the Gate:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="FLOAT:left;MARGIN-LEFT:5px;MARGIN-RIGHT:5px;" src="http://www.sqlservercentral.com/blogs/blogs/brian_kelley/Security/af_security_forces_dog_handler.jpg" width="113" height="170" alt="" /&gt;As a member of the United States Air Force, one of the job types I came into contact with every&amp;nbsp;day were what are known as Security Forces (like the guy to our left). These are people whose job it is to provide base and flightline protection. Because they did this job, I could focus on my job: computers. Now, they weren&amp;#39;t just base and flightline defense, either. They also were law enforcement personnel. If you were speeding on base, it would be these guys who would pull you over in a heartbeat. And while I know that some civilian law enforcement personnel have the discretion to give a warning instead of a ticket, I never met one of these guys who did. They took their job seriously, whether it was pulling people over for speeding, preventing looting of a base devastated by a hurricane (Keesler Air Force base after Hurricane Katrina), or trying to ensure no one is trying to get on base that shouldn&amp;#39;t be there. Well trained and well motivated, they will always do a better job than someone like me, because they are trained for it, constantly do it, and constantly retrain on it.&lt;/p&gt;
&lt;p&gt;And that describes Windows authentication. The Windows operating system already has authentication functionality built-in. It has to do so. And if you&amp;#39;re in a domain environment, there are special computers, called Domain Controllers, where authentication actually takes place. Those systems tend to be treated more security than regular servers, even SQL Servers. And therefore, if the username/password combinations are going to be stored on the most secure systems in the domain, that would be on the domain controllers (&lt;em&gt;as a side note, a hash is what is actually stored there, not the password itself&lt;/em&gt;). If you let Windows do the authentication, then SQL Server doesn&amp;#39;t have to store anything related to a username/password combination. And it&amp;#39;s up to Windows to check the security. In other words, SQL Server is handing off this sort of authentication to processes which do it constantly. That&amp;#39;s good, because it also means that if you&amp;#39;re a DBA and your organization is large enough to have someone else managing the domain security, then you can leave the authentication to them, which is something they&amp;#39;re doing constantly. And you have the option of focusing on what you do best: SQL Server.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;So Why SQL Server Authentication?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Because you have to. Yup, I said it. The classic example is a third-party application that only supports SQL Server based authentication. You can pull out your hair and gnash your teeth all you want, but if the vendor isn&amp;#39;t going to change the product and you need their product, you&amp;#39;re stuck. And you&amp;#39;ll have to allow SQL Server to manage the authentication. That&amp;#39;s not as bad as some may make it seem. SQL Server does a secure job of things. However, you lose the advantages I&amp;#39;ve mentioned above.&lt;/p&gt;
&lt;p&gt;Another classic example is when you have a system that isn&amp;#39;t on the domain that needs to talk to the SQL Server. For instance, you have linux servers that you want to connect back with and in that case, SQL Server authentication is the most straight-forward way to go. Another classic example along these lines is a web server that sits in the DMZ. Not the one between North and South Korea, mind you, but where you have your Internet facing systems located. These systems are partially protected from an Internet attack and your internal network is protected from most attacks that could originate from these DMZ servers, should those servers be compromised. So it&amp;#39;s a buffer zone between your internal environment and the Internet. In this case, it can be considered too risky to put said web server in the DMZ on the internal Windows domain. If that&amp;#39;s the case, you can&amp;#39;t use Windows authentication to connect. So you&amp;#39;ve got to use SQL Server authentication.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Some Practical Instruction&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Okay, let&amp;#39;s depart from the theory and look at some of this stuff in your SQL Server environment. Here are some videos which explore the topic of authentication a bit further. They&amp;#39;re all short, five minutes or less, and should give you a basic foundation on how folks come into your SQL Server:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="null" href="http://www.sqlshare.com/sql-server-authentication-modes_582.aspx"&gt;SQL Server Authentication Modes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="null" href="http://www.sqlshare.com/sql-server-login-vs-windows-authenticated-logins_583.aspx"&gt;SQL Server Logins vs. Windows Logins&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="null" href="http://www.sqlshare.com/adding-a-login-to-sql-server_559.aspx"&gt;Adding a SQL Login to SQL Server (GUI only)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="null" href="http://www.sqlshare.com/adding-a-windows-based-login-to-sql-server_560.aspx"&gt;Adding a Windows-based Login to SQL Server (GUI only)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="null" href="http://www.sqlshare.com/disabling-sql-server-logins-in-sql-server-2005_571.aspx"&gt;Disabling SQL Server Logins in SQL Server 2005 (also applicable to SQL Server 2008)&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.sqlservercentral.com/blogs/aggbug.aspx?PostID=15182" width="1" height="1"&gt;</description><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/Security/default.aspx">Security</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/SQL+Server+security/default.aspx">SQL Server security</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/SQL+University/default.aspx">SQL University</category></item><item><title>Another Year, Another Missed PASS Summit</title><link>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/10/23/another-year-another-missed-pass-summit.aspx</link><pubDate>Fri, 23 Oct 2009 16:50:00 GMT</pubDate><guid isPermaLink="false">70975365-724d-4ce8-8d1c-45c963ab81ff:15158</guid><dc:creator>K. Brian Kelley</dc:creator><slash:comments>10</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/rsscomments.aspx?PostID=15158</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/commentapi.aspx?PostID=15158</wfw:comment><comments>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/10/23/another-year-another-missed-pass-summit.aspx#comments</comments><description>&lt;p&gt;This year I was really looking forward to going to the &lt;a class="null" href="http://summit2009.sqlpass.org/AboutSummit/ROI/tabid/63/Default.aspx"&gt;PASS Summit&lt;/a&gt;.&amp;nbsp;It&amp;#39;s worth every penny in the knowledge you&amp;#39;ll gain and the networking opportunities you&amp;#39;ll encounter. You know, a lot hasn&amp;#39;t been said on the later, but let me throw my two cents worth in here (since we&amp;#39;re talking about pennies). The friends I have made&amp;nbsp;and the relationships I have expanded on through the one PASS Summit I was able to attend have&amp;nbsp;been extremely rewarding to me personally. I tweeted about how I consider a few folks my unofficial mentors in &lt;a class="null" href="http://www.sqlservercentral.com/blogs/steve_jones/default.aspx"&gt;Steve Jones&lt;/a&gt; and &lt;a class="null" href="http://www.sqlservercentral.com/blogs/andy_warren/default.aspx"&gt;Andy Warren&lt;/a&gt;. Being able to meet them and really get to know them at the PASS Summit was the main highlight of that conference for me. It&amp;#39;s where I learned a lot more about them personally, where they come from, what their backgrounds are, and&amp;nbsp;that time spent, along with other opportunities over the years, has&amp;nbsp;been&amp;nbsp;the reason I so value their wisdom and advice. But I&amp;#39;ve met and built relationships with other folks, too, through that conference and you know, if you were to sum up the hours I&amp;#39;ve spent talking, trading emails, getting technical advice, bouncing ideas, etc. off at a regular consultant&amp;#39;s bill rate, I&amp;#39;ve come out way ahead. It&amp;#39;s not about bill rates for me, don&amp;#39;t get me wrong. But a lot of folks are not going to be able sell&amp;nbsp;their manager on &amp;quot;relationships&amp;quot; in a lot of cases. So we need to take something that business uses. So if we&amp;#39;re talking about&amp;nbsp;something business can use to understand the benefits of sending its people, that&amp;#39;s money. If I added up the bill rate for all those &amp;quot;consulting&amp;quot;&amp;nbsp;hours that no one paid for versus what it costs to go to one conference, travel and accomodations included, business comes out incredibly ahead. Maybe that&amp;#39;s another way to approach asking to go to the Summit or any other major conference like &lt;a class="null" href="http://www.msteched.com/online/home.aspx"&gt;TechEd&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;So back to what I was saying, I was looking forward to going to the Summit. There are a lot of folks I want to meet in person. There&amp;#39;s a lot of stuff I want to learn about. This year was the first year I had a topic selected. And I&amp;#39;m a SQL Server MVP this year, and while I hope I&amp;#39;ll be renewed come January, I know that&amp;#39;s not a given. Plus, the recent PASS elections and some comments made by folks I respect (&lt;a class="null" href="http://sqlblog.com/blogs/andrew_kelly/default.aspx"&gt;Andy Kelly&lt;/a&gt;, &lt;a class="null" href="http://sqlblog.com/blogs/adam_machanic/default.aspx"&gt;Adam Machanic&lt;/a&gt;, to name two) have made me realize that there PASS is a community and it&amp;#39;s a professional organization, but it needs cash flow, too. So I wanted to talk to folks and see how I might help in that regard. Being a gopher and making phone calls and sending&amp;nbsp;emails&amp;nbsp;is something I can do, even if I don&amp;#39;t have the business background of some folks. It&amp;#39;s a way I&amp;nbsp;can contribute to help&amp;nbsp;PASS get better.&amp;nbsp;And I figured the Summit was a good way to talk face-to-face with the right folks. So there were a lot of things saying, &amp;quot;Go west, young man!&amp;quot; But ultimately, it&amp;#39;s about choices and priorities. I &lt;a class="null" href="http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/10/15/are-you-sticking-to-your-goals-do-you-know-what-they-are.aspx"&gt;blogged&lt;/a&gt; about how I was impressed with a statement &lt;a class="null" href="http://twitter.com/briancmoran"&gt;Brian Moran&lt;/a&gt; made. Here&amp;#39;s his statement again:&lt;/p&gt;
&lt;p style="PADDING-LEFT:30px;"&gt;&lt;em&gt;&amp;quot;I’ve learned over the years that there are a lot of things that I can delegate to other people. I can’t delegate being a good husband or father. I prioritize those jobs on a daily basis even when I’m super busy with other professional responsibilities.&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#39;m of the same mindset. I can&amp;#39;t delegate being a proper husband and father. I also won&amp;#39;t abdicate or shirk those roles. Yesterday, when my wife and I went for our 20 week ultrasound, they noticed twins. Yeah, we were shocked. So were the nurse and doctor. Nothing previously had indicated twins, including the initial ultrasound and some of the screenings that have been done. As they examined using ultrasound, they could only see one placenta (which likely means identical twins). So that kicked us into &amp;quot;high risk&amp;quot; and we&amp;#39;ve got a referral working to doctors at the &lt;a class="null" href="http://www.med.sc.edu/"&gt;University of South Carolina School of Medicine&lt;/a&gt;. I make fun of USC all the time due to their repeated futility in college sports, but their high risk pregnancy docs are great. I know, because the previous pregnancy we had to see them for a different matter (which has repeated itself in this pregnancy). The referral appointment may reveal that there are two placentas. And we drop back out of high risk. But it may also mean additional tests and checks, because they weren&amp;#39;t able to get all the things they wanted to get on baby B (who was starting a trend of being uncooperative with the doctors... repeating the behavior of our 4 year-old daughter) even though what they were able to get on both, everything looks good. At this point we just don&amp;#39;t know. The referral appointment should come in the next week or so, but most likely during the week of the Summit.&lt;/p&gt;
&lt;p&gt;So as disappointed as I am, it wasn&amp;#39;t a very hard decision as to what to do. I had already thought of this back in June because of&amp;nbsp;a question &lt;a class="null" href="http://bradmcgehee.com/"&gt;Brad McGehee&lt;/a&gt; asked with regards to &lt;a class="null" href="http://www.devconnections.com/shows/FALL2009SQL/default.asp?s=137"&gt;SQL Connections&lt;/a&gt;, when they were no emotions and no concerns and I could think through it in a coldly logical fashion (like &lt;a class="null" href="http://sqlservertimes2.com/"&gt;Lori Edwards&lt;/a&gt; does). But even without that prior question, we&amp;#39;re talking family. We&amp;#39;re talking my wife. And that makes it a no-brainer of a choice. I&amp;#39;ve talked about my faith and that will always be first. But she&amp;#39;s next on the pecking list. In fact, my faith says that had better be the way it is in my life. So while I will lament the fact that I can&amp;#39;t be at the Summit this year, I won&amp;#39;t lose any sleep over making this decision. For those who were looking to meet me, the&amp;nbsp;couple of you out there, I hope we&amp;#39;ll meet at other venues soon.&lt;/p&gt;&lt;img src="http://www.sqlservercentral.com/blogs/aggbug.aspx?PostID=15158" width="1" height="1"&gt;</description><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/Conferences_2F00_User+Groups/default.aspx">Conferences/User Groups</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/Professional+Organization+for+SQL+Server/default.aspx">Professional Organization for SQL Server</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/Training/default.aspx">Training</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/Microsoft+SQL+Server/default.aspx">Microsoft SQL Server</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/PASS/default.aspx">PASS</category></item><item><title>Habits and Activities for De-Stressing</title><link>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/10/22/habits-and-activities-for-de-stressing.aspx</link><pubDate>Thu, 22 Oct 2009 06:38:00 GMT</pubDate><guid isPermaLink="false">70975365-724d-4ce8-8d1c-45c963ab81ff:15094</guid><dc:creator>K. Brian Kelley</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/rsscomments.aspx?PostID=15094</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/commentapi.aspx?PostID=15094</wfw:comment><comments>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/10/22/habits-and-activities-for-de-stressing.aspx#comments</comments><description>&lt;p&gt;I was chatting on FaceBook today with a guy&amp;nbsp;from my church who is learning to be a network engineer. He&amp;#39;s a smart guy and his dad is in IT, too. John is his name and he has helped me in the past with IT-related work that we needed to do around the church. He&amp;#39;s not afraid or too above doing the stuff that&amp;#39;s just got to be done, like doing cable runs in the ceiling. As you might guess, I love&amp;nbsp;working with and talking with John. We were chatting about a project he had for class where they had to figure out a plan and cost it out for wiring a four-story building. A very practical exercise. As we wrapped up the conversation, he made a point&amp;nbsp;that I always have a lot going on. Another friend of mine, the wife of one of my former&amp;nbsp;pastors&amp;nbsp;and a man I still consider a mentor in minstry, remarked that I&amp;#39;m very much like her husband, with &amp;quot;too many irons in the fire.&amp;quot; She&amp;#39;s right that I&amp;#39;m like him. I don&amp;#39;t know that I could be satisfied not being constantly engaged in stuff. It drives my wife crazy sometimes, but that&amp;#39;s the way I&amp;#39;m wired. Even with that said, I still need to take time to destress and unwind. &lt;/p&gt;
&lt;p&gt;One of the activities that I used to do a lot for that was play flute. I blogged about &lt;a class="null" href="http://gkdba.wordpress.com/2009/09/18/re-establishing-an-old-habit-of-playing-flute-each-day/"&gt;getting back to doing that every day&lt;/a&gt;. It&amp;#39;s been slow going getting back into the habit, but my tone is coming back, and I&amp;#39;m enjoying it. I played for about an hour before I went to to bed and it did serve to relax me greatly. The great thing about playing music like this is I can play out my stress and my emotions, especially by choosing music that expresses how I feel or just doing a bit of improv. It&amp;#39;s an activity I&amp;#39;ve needed to get back into and I am glad that I have.&lt;/p&gt;
&lt;p&gt;Another thing I do to destress is walk. I sometimes do this at work for lunch. I&amp;#39;ll wolf down my meal and then head out for a couple of miles. Since I work downtown in Columbia, SC, there&amp;#39;s good sidewalks and there are some streets which don&amp;#39;t have a whole lot of traffic. They are out the back of my building, so it&amp;#39;s really easy to get out, spend about 45 minutes trudging around, and just thinking and letting go of whatever has gotten me worked up. Or, if there&amp;#39;s something that&amp;#39;s really pressing hard on me, I&amp;#39;ll take a 15 minute break and walk a couple of times around the block, then head back in refreshed. It&amp;#39;s amazing how stepping away from 15 minutes and disconnecting from a computer can really help clear the mind and release the anxiety and stress that so often accompanies our profession.&lt;/p&gt;
&lt;p&gt;In any case, I think anyone who works in IT should have activities and habits that help them relax. A friend of mine, who shall remain unnamed, has seemed stressed out a lot lately. He doesn&amp;#39;t get up and do anything at lunch time, continuing to plug away at his desk. He doesn&amp;#39;t really take breaks. And I&amp;#39;ve watched him get spun up as the day grows long. I can tell it&amp;#39;s taking a toll on his health and his sanity, but that&amp;#39;s how he&amp;#39;s choosing to handle things. I&amp;#39;ve tried to encourage him to at least step away for a few minutes, and he does from time-to-time, but far less than he needs to. I hope that aspect changes in the near future. He&amp;#39;s been a friend for years and I don&amp;#39;t like seeing him suffer when he has the ability to do something to alleviate some of the pressure and stress. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.sqlservercentral.com/blogs/aggbug.aspx?PostID=15094" width="1" height="1"&gt;</description><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/performance/default.aspx">performance</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/off-topic/default.aspx">off-topic</category></item><item><title>Review: ASUS Eee PC 1005HA Netbook</title><link>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/10/19/review-asus-eee-pc-1005ha-p-netbook.aspx</link><pubDate>Tue, 20 Oct 2009 02:14:00 GMT</pubDate><guid isPermaLink="false">70975365-724d-4ce8-8d1c-45c963ab81ff:15014</guid><dc:creator>K. Brian Kelley</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/rsscomments.aspx?PostID=15014</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/commentapi.aspx?PostID=15014</wfw:comment><comments>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/10/19/review-asus-eee-pc-1005ha-p-netbook.aspx#comments</comments><description>&lt;p&gt;&lt;a class="null" href="http://www.amazon.com/gp/product/B002DYIXMS?ie=UTF8&amp;amp;tag=truthsolution-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=B002DYIXMS"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;FLOAT:right;BORDER-TOP:0px;BORDER-RIGHT:0px;" src="http://www.sqlservercentral.com/blogs/blogs/brian_kelley/Products/ASUS_Eee_PC.jpg" width="160" height="146" alt="" /&gt;&lt;/a&gt;Our home desktop&amp;nbsp;was several years old and due for replacement. I still have my Dell laptop,&amp;nbsp;and it&amp;#39;s still more than powerful&amp;nbsp;enough to do everything I need it to do. Plus, I have a work laptop that&amp;#39;s more than sufficient as well. We moved my wife to a &lt;a class="null" href="http://www.amazon.com/gp/product/B002C7446A?ie=UTF8&amp;amp;tag=truthsolution-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=B002C7446A"&gt;MacBook Pro&lt;/a&gt;, because of the ease of use. And for those that have a thing against Macs because of the price, it has been worth it for me. When you consider how much time I spent assisting with what were really basic things on the PC, things she&amp;#39;s able to handle just fine on the Mac by herself, so I&amp;#39;ve made up the difference&amp;nbsp;in cost in the hours I&amp;#39;ve&amp;nbsp;not had to spend being &amp;quot;support.&amp;quot; But given that the Mac is as expensive as it is, we were looking for something for the kids. We homeschool, so it had to be powerful enough to do basic word processing, spreadsheets, etc. while also being able to access the Internet so they can do research, play games online, and the like. I wasn&amp;#39;t looking for a gaming platform or even a&amp;nbsp;more robust laptop to do development and SQL Server related work. So that put us in the netbook category. After doing some research, I decided upon the &lt;a class="null" href="http://www.amazon.com/gp/product/B002DYIXMS?ie=UTF8&amp;amp;tag=truthsolution-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=B002DYIXMS"&gt;ASUS Eee PC 1005HA&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Online Ratings:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Online ratings can be misleading. You could have what looks to be a highly rated item, only to see that it has just a handful of reviews. So I was looking for a high rating along with a decent number of folks chiming in. I originally began my search on &lt;a class="null" href="http://www.newegg.com"&gt;Newegg.com&lt;/a&gt; figuring I would look for what the best deals were. I didn&amp;#39;t like the best deals so I started looking at highly rated netbooks. The Eee PC 1005HA had over 100 ratings, with over 80% being 5 eggs. Wanting to see what the ratings were on &lt;a class="null" href="http://www.amazon.com/gp/product/B002DYIXMS?ie=UTF8&amp;amp;tag=truthsolution-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=B002DYIXMS"&gt;Amazon.com&lt;/a&gt;, I went over there and saw around 100 reviews, with over half giving 5 stars. So there were enough folks having offered an opinion with that opinon being a good one that it looked like the one I wanted.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Price Tag:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Newegg has it for around $350 and that was within the price range for what I wanted to spend. However, when I popped over to Amazon, I realized it was even cheaper. Cheaper than manufacturer&amp;#39;s suggested retail price, in fact. It had what I needed. Decent sized hard drive (solid state was on the wish list, but not in the budget), decent screen size for a netbook, full ergonomic keyboard, and decent memory. It came with Windows XP and that was fine. It had everything I needed and was at a great price. Kick in the fact that Amazon was willing to ship with 1 day shipping at an unreal price, and it was a done deal.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Living Up to Expectations:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It took me a little bit of time to setup, as I wanted to make sure each kid had their own limited user account (that&amp;#39;s right, no administrator rights). So I needed to set the icons for sign-in, find the right backgrounds to allow them to see at a glance who was currently logged in, etc. But clean-up wise there wasn&amp;#39;t too much to do. There&amp;#39;s just not a lot of junk on it.&amp;nbsp;I removed the trial installation of Microsoft Office, removed Microsoft Works, deleted the installer for one of the big name AV providers, then proceeded to patch it, set up the firewall, set up when Automatic Updates would grab patches and install, upgraded to IE 8, installed &lt;a class="null" href="http://www.microsoft.com/security_essentials/default.aspx"&gt;Microsoft Security Essentials&lt;/a&gt; for AV, installed &lt;a class="null" href="http://www.openoffice.org/"&gt;OpenOffice&lt;/a&gt;, and configured the defaults in OpenOffice on each user account to save&amp;nbsp;in Microsoft Office format. That only took a couple of hours. Most of that time was in the customization. During this time I spent a lot of time staring at the screen and using the touchpad.&lt;/p&gt;
&lt;p&gt;A word about the touchpad. The netbook is light and it&amp;#39;s got a plastic shell. However, the area for the touchpad has raised bumps so that you know you&amp;#39;re on it. It&amp;#39;s really easy to use and stay on for most of it. My four year-old had a bit of trouble with it, but I found it very usable. So if you don&amp;#39;t want to use a mouse, you really don&amp;#39;t need to. The touchpad is more than sufficient. I actually like it better than the ones I have on my Dell laptop (personal) and my HP laptop (work). &lt;/p&gt;
&lt;p&gt;Now about that screen. The one issue I did have with the netbook is an issue with all netbooks. There is a limited screen space. Because there is a limited screen space, the resolution was only 1024 x 600. That&amp;#39;s a problem, because some websites like &lt;a class="null" href="http://www.webkinz.com/"&gt;Webkinz&lt;/a&gt; (yes, I went there) require 1024 x 768. I tried using Webkinz in 1024 x 600 and it&amp;#39;s just not very usable. The bottom dock is lost, and that&amp;#39;s how you get easy access to your pets, their items, and the like. Okay! I admit it. I have a Webkinz account. Originally it was for me to keep an eye on what my kids were doing, but some of the games are rather fun. But in any case, I needed to do something about that screen size, because I really didn&amp;#39;t want to hook up the flatscreen monitor to the netbook. I&amp;#39;d rather package it all up, wipe the hard drive, and donate it to a worthy cause. Thankfully, I didn&amp;#39;t have to cart over the monitor. The Asus Eee PC has a screen compression mode that will display 1024x768 on that 1024x600 resolution screen. I was hesitant to activate it because I figured there would be a nasty loss in overall resolution. But desperate times call for desperate measures so turn it on I did. And I&amp;nbsp;was pleasantly surprised that you couldn&amp;#39;t really notice the difference. About the only thing you do see is the screen flicker twice when you originally log on as it activates the screen compression, but then it works fine. Having solved the Webkinz issue, it was time to turn it over to the kids.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Kid Tested, Kid Approved:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;My kids got on the system and have used it quite heavily. As would be expected for pre-teen and younger audience, they make heavy use of flash-based games and YouTube / Tangle.com videos. And they tend to play back-to-back-to-back for several hours at a time. The netbook has held up well and it&amp;#39;s performed just fine. I see a bit of a pause when loading flash heavy websites as compared to my personal laptop, but I&amp;#39;ve got a Core 2 Duo with 4 GB of RAM. The speed is more than sufficient for what they do. The only issue we&amp;#39;ve had is with the 4 year-old and adjusting to the touchpad. She doesn&amp;#39;t have the dexterity yet to be consistent with it. So we ended up getting a travel-sized mouse (perfect for smaller hands) and she&amp;#39;s good to go. &lt;a class="null" href="http://tv.disney.go.com/playhouse/index.html"&gt;Playhouse Disney&lt;/a&gt;, here she comes! So it&amp;#39;s definitely held up in the couple of weeks we&amp;#39;ve had it. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;strong&gt;Would I Use It?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;quot;It depends.&amp;quot; For general Internet use, for word processing and basic documents, it&amp;#39;s great. For watching videos or listening to music, it&amp;#39;s fine. Would I install SQL Server or a dev environment on it? No. It&amp;#39;s not built for that. If I had nothing else, then I might consider it as it has a decent hard drive and enough memory to make that kind of setup usable, though just barely. If you use it for what it was intended for, it&amp;#39;s fine. Anything more is pushing it. But that&amp;#39;s to be expected with a netbook.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Would I Recommend It?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Based on my experience and the cost, yes. It&amp;#39;s been a good buy thus far. It fills the needs for the kids and I can use it in a pinch for basic type of productivity. Especially given Amazon&amp;#39;s price, I think it&amp;#39;s a great deal for what you get. So I would recommend it if you&amp;#39;re looking for a netbook and you&amp;#39;re sure you just need a netbook.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.sqlservercentral.com/blogs/aggbug.aspx?PostID=15014" width="1" height="1"&gt;</description><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/Tools/default.aspx">Tools</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/review/default.aspx">review</category></item><item><title>Vetting the PASS Board of Directors candidates</title><link>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/10/16/vetting-the-pass-board-of-directors-candidates.aspx</link><pubDate>Fri, 16 Oct 2009 16:01:00 GMT</pubDate><guid isPermaLink="false">70975365-724d-4ce8-8d1c-45c963ab81ff:14944</guid><dc:creator>K. Brian Kelley</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/rsscomments.aspx?PostID=14944</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/commentapi.aspx?PostID=14944</wfw:comment><comments>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/10/16/vetting-the-pass-board-of-directors-candidates.aspx#comments</comments><description>&lt;p&gt;I&amp;#39;ve had a pretty heavy involvement in Brent Ozar&amp;#39;s interview of Matt Morollo. The reason for my&amp;nbsp;intense activity&amp;nbsp;is he was an unknown factor to me. I interact with Thomas LaRock and Jeremiah Peschka on almost a daily basis through Twitter. I follow their blogs. I exchange emails with them. There are some things we agree on, others we don&amp;#39;t, and still others we&amp;#39;ve never discussed. As a result, you didn&amp;#39;t see me &amp;quot;laying the wood&amp;quot; to them on their interviews because I have a good sense of what they&amp;#39;d bring to the board, of what they think of PASS and its constituency, and what they see as pain points in our community. Brian Moran has been around a while. I&amp;#39;ve seen his track record. So while we&amp;#39;ve never talked in any way, I believe I have a good sense of what I believe he brings. But I needed to know about Matt Morollo. So I stepped in and participated heavily in the conversation.&lt;/p&gt;
&lt;p&gt;&lt;a class="null" href="http://codegumbo.com/"&gt;Stuart Ainsworth&lt;/a&gt; made a good point that the other candidates should be similarly vetted by voters as has been done with Mr. Morollo. I explained to him why i didn&amp;#39;t (and you see my explanation here). &lt;a class="null" href="http://sqlchicken.com/"&gt;Jorge Segarra&lt;/a&gt; made another good point about Thomas LaRock having done that well through the UStream presentations he did. The bottom line is to know who you&amp;#39;re voting for. Your vote makes a difference. If you don&amp;#39;t know the candidates, ask them the questions you want answered. Do the research on them. Determine for yourself whether or not that person is the right person for the board or not, as &lt;a class="null" href="http://webbtechsolutions.com/2009/10/15/the-pass-board-of-directors-election/"&gt;Joe Webb put so eloquently&lt;/a&gt;:&lt;/p&gt;
&lt;p style="PADDING-LEFT:30px;"&gt;&lt;em&gt;&amp;quot;But I will tell you that you should give careful consideration and follow up on the questions I’ve outlined in this post. Email the candidates. Ask them questions until you’re satisfied with your knowledge and you can confidently make your decision.&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;So where do you start? Before you do anything else, start here: &lt;a class="null" href="http://www.sqlpass.org/AboutPASS/Elections2009/2009SlateofCandidates.aspx"&gt;PASS Board of Directors Slate of Candidates&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Then look at what the candidates have to say for themselves (these were the two who have put more out specifically about their candidacy):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="null" href="http://thomaslarock.com/category/pass/"&gt;Thomas LaRock&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="null" href="http://facility9.com/about/2009-pass-board-of-directors-elections"&gt;Jeremiah Peschka&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Check the interviews with &lt;a class="null" href="http://www.brentozar.com/"&gt;Brent Ozar&lt;/a&gt; (and these are in alphabetical order by last name, so no one can say I&amp;#39;m showing Tom favoritism due to his love of bacon... because if that were true, I think Jeremiah would be 2nd on the list):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="null" href="http://www.brentozar.com/archive/2009/10/meet-pass-board-candidate-tom-larock/"&gt;Thomas LaRock&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="null" href="http://www.brentozar.com/archive/2009/10/meet-pass-board-candidate-brian-moran/"&gt;Brian Moran&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="null" href="http://www.brentozar.com/archive/2009/10/meet-pass-board-candidate-matt-morollo/"&gt;Matt Morollo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="null" href="http://www.brentozar.com/archive/2009/09/meet-pass-board-candidate-jeremiah-peschka/"&gt;Jeremiah Peschka&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;And engage with them, such as through Twitter:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="null" href="http://twitter.com/sqlrockstar"&gt;Thomas LaRock&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="null" href="http://twitter.com/briancmoran"&gt;Brian Moran&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="null" href="http://twitter.com/mattmorollo"&gt;Matt Morollo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="null" href="http://twitter.com/peschkaj"&gt;Jeremiah Peschka&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;In other words, take the time to understand where each candidate stands and cast your vote accordingly.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.sqlservercentral.com/blogs/aggbug.aspx?PostID=14944" width="1" height="1"&gt;</description><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/Leadership/default.aspx">Leadership</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/Conferences_2F00_User+Groups/default.aspx">Conferences/User Groups</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/Professional+Organization+for+SQL+Server/default.aspx">Professional Organization for SQL Server</category></item><item><title>Are you sticking to your goals? Do you know what they are?</title><link>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/10/15/are-you-sticking-to-your-goals-do-you-know-what-they-are.aspx</link><pubDate>Thu, 15 Oct 2009 19:42:00 GMT</pubDate><guid isPermaLink="false">70975365-724d-4ce8-8d1c-45c963ab81ff:14920</guid><dc:creator>K. Brian Kelley</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/rsscomments.aspx?PostID=14920</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/commentapi.aspx?PostID=14920</wfw:comment><comments>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/10/15/are-you-sticking-to-your-goals-do-you-know-what-they-are.aspx#comments</comments><description>&lt;p&gt;I&amp;#39;ve engaged a little in the discussion on &lt;a class="null" href="http://www.brentozar.com/archive/2009/10/meet-pass-board-candidate-matt-morollo/"&gt;Matt Morollo&amp;#39;s interview&lt;/a&gt; on &lt;a class="null" href="http://www.brentozar.com/"&gt;Brent Ozar&amp;#39;s blog&lt;/a&gt;. It made me go back and re-read the other candidates, and when re-reading &lt;a class="null" href="http://www.brentozar.com/archive/2009/10/meet-pass-board-candidate-brian-moran/"&gt;Brian Moran&amp;#39;s&lt;/a&gt;, I was struck with this comment:&lt;/p&gt;
&lt;p style="PADDING-LEFT:30px;"&gt;&lt;em&gt;&amp;quot;I’ve learned over the years that there are a lot of things that I can delegate to other people. I can’t delegate being a good husband or father. I prioritize those jobs on a daily basis even when I’m super busy with other professional responsibilities.&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#39;m reading (finally) &lt;em&gt;&lt;a class="null" href="http://www.amazon.com/gp/product/0743269519?ie=UTF8&amp;amp;tag=truthsolution-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0743269519"&gt;The 7 Habits of Highly Effective People&lt;/a&gt;&lt;/em&gt;. Covey&amp;#39;s second point is to begin with the end in mind. Know what you want. Then use that to help you make your decisions. The example he used at the beginning of the discussion on this point is, &amp;quot;What will people say at your funeral?&amp;quot; It all goes back to goals. Have you thought about what it is you really want? Have you considered what is truly important to you? And are your current actions supporting those things?&lt;/p&gt;
&lt;p&gt;I blogged on my Goal Keeping DBA blog about &lt;a class="null" href="http://gkdba.wordpress.com/2009/10/13/goal-seminary/"&gt;beginning seminary&lt;/a&gt;. It&amp;#39;s a goal I&amp;#39;ve had for a long time and I&amp;#39;m finally beginning that journey. &lt;a class="null" href="http://blog.dkranch.net"&gt;Steve Jones&lt;/a&gt; commented and gave me a very needed reminder that if I need to step back in other areas, like in the professional space, to make sure I do that if this is more important. It is. I have a great deal of respect for Steve, as most of us do. Time and time again he has offered invaluable advice, not only about the profession, but about life in general. I need to make sure what I do stays in the proper perspective. Brian&amp;#39;s comment hit deep because it is something I believe, too. I can&amp;#39;t delegate being a good husband and a proper father. I can&amp;#39;t let my job or my ministry to take me away from those responsibilities. &lt;/p&gt;
&lt;p&gt;And that gets to the point of this post. If you don&amp;#39;t know what your long term goals are, and what their priorities are to you, you may reach the end of that long term period and realize you aren&amp;#39;t happy with the road you chose. I don&amp;#39;t want to be in that position. I&amp;#39;ve set goals. I want to reach them.&amp;nbsp;Reminders like Steve&amp;#39;s and Brian&amp;#39;s help me stay on track. If you&amp;#39;ve not set goals for yourself, this isn&amp;#39;t something to procrastinate on. Once you do, rack and stack them. And then let them help you choose your actions in your future decisions. You&amp;#39;ll stand a better chance of looking back down the road you&amp;#39;ve traveled and being able to say, &amp;quot;Yes, I&amp;#39;m glad I&amp;#39;m where I ended up.&amp;quot; Being a graduate of &lt;a class="null" href="http://www.citadel.edu/"&gt;The Citadel&lt;/a&gt;, one of the things they reminded us is that we took the road less traveled. That comes from Robert Frost&amp;#39;s poem, &lt;em&gt;&lt;a class="null" href="http://www.poets.org/viewmedia.php/prmMID/15717"&gt;The Road Not Taken&lt;/a&gt;&lt;/em&gt;. I&amp;#39;ll leave you with the last stanza (and yes, there are two interpretations... we choose to look at the positive one):&lt;/p&gt;
&lt;p style="PADDING-LEFT:30px;"&gt;I shall be telling this with a sigh&lt;br /&gt;Somewhere ages and ages hence:&lt;br /&gt;Two roads diverged in a wood, and I --&lt;br /&gt;I took the one less travelled by,&lt;br /&gt;and that has made all the difference&lt;/p&gt;&lt;img src="http://www.sqlservercentral.com/blogs/aggbug.aspx?PostID=14920" width="1" height="1"&gt;</description><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/Leadership/default.aspx">Leadership</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/professional+development/default.aspx">professional development</category></item><item><title>Afraid of Presenting? Try Toastmasters</title><link>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/10/12/afraid-of-presenting-try-toastmasters.aspx</link><pubDate>Tue, 13 Oct 2009 03:41:00 GMT</pubDate><guid isPermaLink="false">70975365-724d-4ce8-8d1c-45c963ab81ff:14863</guid><dc:creator>K. Brian Kelley</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/rsscomments.aspx?PostID=14863</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/commentapi.aspx?PostID=14863</wfw:comment><comments>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/10/12/afraid-of-presenting-try-toastmasters.aspx#comments</comments><description>&lt;p&gt;I should be writing a technical post in the next day or so. I&amp;#39;ve been focusing more on the community and professional development side because that&amp;#39;s what is foremost in my mind right now. And that&amp;nbsp;brings me to public speaking. I will admit that I&amp;#39;ve had a lot of experience being in front of a&amp;nbsp;group of folks. You can go back to my days at The Citadel as a reason for that. My sophomore year, I participated in a group called C.A.D.R.E., which&amp;nbsp;was a take-off of the cadre, the upper-classmen responsible for training the&amp;nbsp;incoming freshmen each year (I did that, too, as a junior). C.A.D.R.E. stood for Citadel&amp;nbsp;Alcohol Drug and&amp;nbsp;Resource Educators and our primary responsibility was to provide education on alcohol and drug prevention. The Citadel had been smacked around with some public incidents where cadets had imbibed and then done something that made the newspaper. Hence the formation of C.A.D.R.E. But&amp;nbsp;we quickly evolved into a drug/alcohol prevention group for the schools around Charleston than so much for The Citadel. I gave one presentation at The Citadel and one more at College of Charleston, but the bulk of my work was out in the public and private schools from 1st grade through 12th. And some of those were hostile crowds, for obvious reasons. But I really learned that speaking in front of a crowd was a learned skill. And because of some personal background having seen alcohol abuse first hand, I wanted to do everything I could to ensure these kids didn&amp;#39;t follow down that same destructive path, even if I had only 30 minutes with them. So I forced myself to stay in there, to practice, to understand what it took to reach the various age groups, and to&amp;nbsp;communicate clearly that&amp;nbsp;I cared. As a result, I got better and got better in a hurry. &lt;/p&gt;
&lt;p&gt;Since then I&amp;#39;ve taught Sunday School, led youth group, preached,&amp;nbsp;and a lot of that on at least a&amp;nbsp;several times a week basis. So I&amp;#39;m constantly in practice, if you want to look at it that way. I&amp;#39;ve got to be. The ministry I feel I&amp;#39;ve been called to is just as important to me as C.A.D.R.E. was back in my Citadel days. But you know what? I knew I could do better. Enter &lt;a class="null" href="http://www.toastmasters.org/"&gt;Toastmasters&lt;/a&gt;. Toastmasters has been around for a while (since 1924). And its purpose is to help people overcome their fear of public speaking and to become better at it. My organization has a private Toastmasters club, so I decided one day to join up. I realized quite quickly that there is an organized plan of development both as a speaker (through the Competent Communicator track) and as a meeting facilitator (through the Competent Leader track). To become a Compentent Communicator, you must give ten introductory speeches. Each speech is critiqued by an evaluator. That evaluator&amp;#39;s job is to tell you what you did well and give you a suggestion or two (in a gentle, affirming way) for further improvement. For those new to Toastmasters, you should be assigned a mentor who is supposed to help you prep for your first few speeches, assist you in the first several meetings you attend, and get you ready for any roles you may take on at a given meeting. In other words, it&amp;#39;s built around training everyone to be better at speaking and interacting in public.&lt;/p&gt;
&lt;p&gt;In the SQL Server community there are a lot of smart folks out there. I&amp;#39;ve run across a few who, in one-on-one interactions, you learn quite a bit about how much they know about a given subject. But they are afraid to get in front of a user group or submit an abstract for something like the &lt;a class="null" href="http://summit2009.sqlpass.org/"&gt;PASS Summit&lt;/a&gt; to present. If you are one of those people, I would urge you to take a look at Toastmasters. We need your experience in the community. We would love to interact with you and exchange ideas, tips, tricks, and knowledge. You are a valuable resource to others around you. Just as valuable as any of us you see doing presentations all the time. And truth be told, I get nervous before a presentation, too. That&amp;#39;s natural. But I believe in what I&amp;#39;m doing, I care about the folks I&amp;#39;m speaking to, and that helps me overcome my fears. The community has been awesome to me, giving me opportunities I would never have dreamed of when I started to get involved with SQL Server a little over ten years ago. And so I feel compelled to give back in any way I can. It&amp;#39;s the least I can do for so many folks who have taken the time to help me learn, grow, and gain experience. Hopefully, you feel the same way and you just need a little push in the right direction. Toastmasters can give that push, in a very positive way. So if you&amp;#39;ve not checked out Toastmasters, hit the site, look for a few clubs near you that fit your schedule and give&amp;nbsp;them a try. At least one (I know several Toastmasters who are members of multiple clubs) should be the right place for you:&lt;/p&gt;
&lt;p style="PADDING-LEFT:30px;"&gt;&lt;a class="null" href="http://www.toastmasters.org/"&gt;Toastmasters International&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.sqlservercentral.com/blogs/aggbug.aspx?PostID=14863" width="1" height="1"&gt;</description><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/Leadership/default.aspx">Leadership</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/Conferences_2F00_User+Groups/default.aspx">Conferences/User Groups</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/Training/default.aspx">Training</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/Presenting/default.aspx">Presenting</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/professional+development/default.aspx">professional development</category></item><item><title>Carolina Code Camp - The Good and the Bad</title><link>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/10/12/carolina-code-camp-the-good-and-the-bad.aspx</link><pubDate>Mon, 12 Oct 2009 16:15:00 GMT</pubDate><guid isPermaLink="false">70975365-724d-4ce8-8d1c-45c963ab81ff:14852</guid><dc:creator>K. Brian Kelley</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/rsscomments.aspx?PostID=14852</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.sqlservercentral.com/blogs/brian_kelley/commentapi.aspx?PostID=14852</wfw:comment><comments>http://www.sqlservercentral.com/blogs/brian_kelley/archive/2009/10/12/carolina-code-camp-the-good-and-the-bad.aspx#comments</comments><description>&lt;p&gt;This past Saturday I was able to participate in the &lt;a class="null" href="http://codecamp.developersguild.org/"&gt;Carolina Code Camp&lt;/a&gt;, help just outside Charlotte, NC. I was there for the morning part, spending time with family in Charlotte for the afternoon. So let me go over both the good and the bad, starting with the bad first. There are lessons to be learned in the bad.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Bad&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Let me start by saying that the bad with CarCC had nothing to do with the Code Camp itself. They are just reminders for me as an individual. Hopefully, if they aren&amp;#39;t things you&amp;#39;ve thought of, you can learn vicariously through my mistakes.&lt;/p&gt;
&lt;p&gt;The first bad was not taking the time to email some folks beforehand to see if they were going and to try and connect with them before I got there. While code camps, &lt;a class="null" href="http://www.sqlsaturday.com/"&gt;SQL Saturdays&lt;/a&gt;, and conferences should be about learning, to a certan extent they should be about networking, too. For instance, &lt;a class="null" href="http://professionalaspnet.com/"&gt;ASP.NET MVP Chris Love&lt;/a&gt; (who I only know through Twitter) and &lt;a class="null" href="http://www.sqlserverbible.com/"&gt;SQL Server MVP Paul Nielsen&lt;/a&gt; were both at Carolina Code Camp. But I missed out on meeting them in person because I didn&amp;#39;t get my ducks in a row ahead of time. I&amp;#39;ll not make that mistake again. I also missed out on seeing &lt;a class="null" href="http://www.linkedin.com/in/boydevert"&gt;Boyd Evert&lt;/a&gt; from the &lt;a class="null" href="http://charleston.sqlpass.org/"&gt;Charleston PASS Chapter&lt;/a&gt; and a couple of local developers I used to work with but who have moved on from AgFirst. Next time, I&amp;#39;ll do better.&lt;/p&gt;
&lt;p&gt;The second bad was not going through my checklist when I was done speaking. I was looking forward to hearing &lt;a class="null" href="https://mvp.support.microsoft.com/profile=E5B7E2D7-4E27-4B98-B3E3-64B1932F88D5"&gt;SQL Server MVP Alejandro Mesa&lt;/a&gt; present, and since we were in the same room (him right after me), I wanted to clear out the space to give him time to setup so he wouldn&amp;#39;t be rushed. As a result, when I was packing my equipment back in my laptop bag, I left my power adapter on one of the tables there. I didn&amp;#39;t realize it was missing until after I had gotten back home, almost 2 hours away from the venue, and long after the event had finished up. I ended up ordering a replacement from Dell Saturday night, but for the second order in a row, it looks like it has gotten lost in their system. I&amp;#39;ve filed a customer support ticket with them, haven&amp;#39;t gotten anything back but the automated email, and I don&amp;#39;t expect anything different than, &amp;quot;We&amp;#39;re sorry, it&amp;#39;s us, not you. Can you place the order again and cross your fingers it will actually go through this time?&amp;quot; So I&amp;#39;ll probably be running down to&amp;nbsp;an office supply store&amp;nbsp;looking for a universal one because I&amp;#39;m quite fed up with Dell. I used to be a big fan, but the experiences I&amp;#39;ve had with them over the last two years means I&amp;#39;m&amp;nbsp;likely done with them as a customer until I hear from peers that things have substantially improved.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Good&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The first was finally being able to hear Alejandro present. He&amp;#39;s done some other venues, but I&amp;#39;ve always had a conflict. When you hear him talk and go through the topic, you understand why his presentations have been highly regarded. I enjoyed the talk immensely, learned a few new things, and enjoyed talking with him. If you haven&amp;#39;t met Alejandro, you should. He&amp;#39;s a humble guy that knows a ton, is very helpful, and cares about his craft and the community. &lt;/p&gt;
&lt;p&gt;The second I was able to meet &lt;a class="null" href="http://jeffsc.blogspot.com/"&gt;Jeff Schroeder&lt;/a&gt;, another active SQL Server type in the area. His presentation was at the same time as mine, but he came to Alejandro&amp;#39;s, and we were able to talk a bit afterwards as a group. Jeff&amp;#39;s another knowledgeable guy who has seen some interesting vendor packages and had to come up with creative solutions to attack the issues they cause. So I&amp;#39;m going to follow back up with Jeff, because he&amp;#39;s a nice guy, knows his stuff, and brings a different perspective because of his experience that I could learn from.&lt;/p&gt;
&lt;p&gt;The third was the venue, the &lt;a class="null" href="http://www.cpcc.edu/campuses/levine"&gt;Levine Campus at Central Piedmont Community College&lt;/a&gt;. They have a very nice setup that was very conducive to a code camp. I was very impressed with the facilities. I think Alejandro indicated they may be trying to do a SQL Server centric activity there, and the college has agreed to lend the space. Apparently there are some very good, community minded folks there in addition to the awesome setup. We would love to have similar access to facilities half that nice here in Columbia, SC.&lt;/p&gt;
&lt;p&gt;The fourth good were some of the ideas that were bounced around in a very short time. Alejandro was making a comment about how hard it is to present on query tuning and optimization on an hour, because to understand what you&amp;#39;re seeing, you&amp;#39;ve got to understand the theory. But to make any sort of headway is hard, because there&amp;#39;s more than an hour of material in there. Alejandro was only focusing on plan caching and re-use. He said up front that he wasn&amp;#39;t touching recompiles because there was simply no time. One of the things I thought about is having a deep dive track or two during the SQL Saturdays. Where you&amp;#39;d get a topic like query tuning and optimization for the morning and another deep dive in the afternoon, maybe on peformance tuning. I think it&amp;#39;s something worth approaching Andy Warren about, so I probably will, especially when both Alejandro and Jeff seemed to think it was a good idea. Some topics just need more time. &lt;/p&gt;
&lt;p&gt;So that wraps up my experience for Carolina Code Camp 2009. It was a great code camp and I&amp;#39;m looking forward to going back again next year. Hopefully, &lt;a class="null" href="http://midlands.sqlpass.org/"&gt;Midlands PASS&lt;/a&gt; will be able to help out in the organization of it in 2010. We&amp;#39;d certainly like to be included along with the .NET user groups.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.sqlservercentral.com/blogs/aggbug.aspx?PostID=14852" width="1" height="1"&gt;</description><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/Conferences_2F00_User+Groups/default.aspx">Conferences/User Groups</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/Training/default.aspx">Training</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/Microsoft+SQL+Server/default.aspx">Microsoft SQL Server</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/Presenting/default.aspx">Presenting</category><category domain="http://www.sqlservercentral.com/blogs/brian_kelley/archive/tags/professional+development/default.aspx">professional development</category></item></channel></rss>