<?xml version="1.0" encoding="utf-8"?>
<feed xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom">
  <title>Return to LifeAsBob</title>
  <link rel="alternate" type="text/html" href="http://www.lifeasbob.com/" />
  <link rel="self" href="http://www.lifeasbob.com/SyndicationService.asmx/GetAtom" />
  <icon>favicon.ico</icon>
  <updated>2010-03-09T12:07:45.19275-06:00</updated>
  <author>
    <name>Robert J. Horkay</name>
  </author>
  <subtitle>Horkay Blog</subtitle>
  <id>http://www.lifeasbob.com/</id>
  <generator uri="http://www.dasblog.net" version="2.0.7180.0">DasBlog</generator>
  <entry>
    <title>Identity Values - Screwed twice !</title>
    <link rel="alternate" type="text/html" href="http://www.lifeasbob.com/2010/03/09/IdentityValuesScrewedTwice.aspx" />
    <id>http://www.lifeasbob.com/PermaLink,guid,b62e4362-41e6-40a6-a571-a9ba83bd6102.aspx</id>
    <published>2010-03-09T12:07:45.192-06:00</published>
    <updated>2010-03-09T12:07:45.19275-06:00</updated>
    <category term="SQL Server" label="SQL Server" scheme="http://www.lifeasbob.com/CategoryView,category,SQL%2BServer.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
I always thought the definition of getting screwed twice was this; <a href="http://www.momlogic.com/2009/05/virginity_auction_taxes.php">A
German student who auctioned her virginity and ended up paying 50% in taxes</a>.
</p>
        <p>
But it turns out that identity values in SQL Server can also screw you twice!
</p>
        <img height="182" src="http://www.lifeasbob.com/content/binary/SQLSewer.jpg" width="264" border="0" />
        <p>
I used to really like identity values and problems have been rare, but this week,
inside of a few days I've been screwed twice by identity values.  This is also
the year of embracing merge replication, time to meet your new friend the guid!
</p>
        <p>
No need to rehash what happenned with identity values, but altering a table from int
to bigint with 30 billion+ rows is not possible.  Found two very helpful posts,
i include their links here as they were most helpful:
</p>
        <p>
To resolve (albeit temporarily) identity values running out for an int, do not forget
you have the negative values.
</p>
        <font color="#008000" size="2">
          <font color="#008000" size="2">
            <p>
DBCC CHECKIDENT ('ProcessActionHistory', RESEED, -2147483648);
</p>
          </font>
        </font>
        <p>
          <a href="http://sqlfool.com/2008/11/max-int-identity-value-reached-dbcc-checkident/">http://sqlfool.com/2008/11/max-int-identity-value-reached-dbcc-checkident/</a>
          <br />
          <a href="http://dbwhisperer.blogspot.com/2009/04/which-identity-column-is-running-out-of.html">http://dbwhisperer.blogspot.com/2009/04/which-identity-column-is-running-out-of.html</a>
        </p>
        <p>
Definetly we'll add a new automated health check, will probably fit in nicely with
our script that check row counts occasionally to also start checking identity columns
and raising alerts on certain thresholds.
</p>
        <p>
I'll also be pushing back much harder on development teams that want identity columns
with an int data type.
</p>
        <img width="0" height="0" src="http://www.lifeasbob.com/aggbug.ashx?id=b62e4362-41e6-40a6-a571-a9ba83bd6102" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Grant Truncate Table Permissions, re-visited !</title>
    <link rel="alternate" type="text/html" href="http://www.lifeasbob.com/2010/02/22/GrantTruncateTablePermissionsRevisited.aspx" />
    <id>http://www.lifeasbob.com/PermaLink,guid,21d56e60-0b93-4c5a-bfb2-1228832e2707.aspx</id>
    <published>2010-02-22T14:30:36.657-06:00</published>
    <updated>2010-03-02T07:10:14.927125-06:00</updated>
    <category term="SQL Server" label="SQL Server" scheme="http://www.lifeasbob.com/CategoryView,category,SQL%2BServer.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Well, it continues to be a pain in my ass, the inability to grant truncate table permissions
on a table to specific users without giving them excessive rights.  SQL 2K5,
no solution, SQL 2K8 no solution, well we did get a bunch of other stuff, so we'll
continue to suffer.  I originally posted an article on Granting Truncate Table
permissions in 2008, here is that <a href="http://www.lifeasbob.com/2008/03/03/GrantTruncateTablePermissionsInSQLServer.aspx">link</a>. 
Recently the need has arisen to have the ability log failures for the solution. 
The code was modified by Holland Humphrey and I'm posting the solution again with
his updates.
</p>
        <p>
          <img style="WIDTH: 389px; HEIGHT: 222px" height="334" src="http://www.lifeasbob.com/content/binary/under_the_table.jpg" width="429" border="0" />
        </p>
        <p>
The solution basically uses a schema, dba, to hold 3 tables for a stored procedure
which is used to truncate tables.  The 3 tables, Truncate_List, Truncate_Audit
and Truncate_Fail.  A user is granted permissions to a stored procedure in the
dbo schema that performs the work and verifies that the table is authorized for truncate,
and logs the success to truncate_audit and the failure to truncate_fail.  One
could argue that truncate_audit could hold both success and failure, but I'll leave
any possible enhancements up to those that desire to do so.
</p>
        <p>
The original inspiration for this actually came from the Oracle group where I work. 
Oracle has the same problem as sql "Grant Truncate on {table} to {User}"...so simple....but
it's not there in SQL or Oracle.  I basically translated the Oracle solution
into SQL Server.
</p>
        <p>
Every upgrade we do from SQL 2000 to 2K5 or 2K8 uses this solution and allows us to
reduce our permissions set to the lowest possible necessary.
</p>
        <p>
Here are the scripts for the solution.
</p>
        <p>
1.  Create a Schema Called DBA {if you prefer something else, adjust the tables
and proc}.
</p>
        <p>
2.  <a href="http://www.lifeasbob.com/content/binary/TruncateSolution_CreateTables.txt">TruncateSolution_CreateTables.txt
(4.67 KB)</a></p>
        <p>
3.  <a href="http://www.lifeasbob.com/content/binary/TruncateSolution_CreateProc.txt">TruncateSolution_CreateProc.txt
(4.34 KB)</a></p>
        <img width="0" height="0" src="http://www.lifeasbob.com/aggbug.ashx?id=21d56e60-0b93-4c5a-bfb2-1228832e2707" />
      </div>
    </content>
  </entry>
  <entry>
    <title>The Bob Book Review</title>
    <link rel="alternate" type="text/html" href="http://www.lifeasbob.com/2010/02/18/TheBobBookReview.aspx" />
    <id>http://www.lifeasbob.com/PermaLink,guid,c5bbee65-766a-48bf-b341-d15a4acc4ee2.aspx</id>
    <published>2010-02-18T15:55:23.328-06:00</published>
    <updated>2010-02-18T15:55:23.328875-06:00</updated>
    <category term="SQL Server" label="SQL Server" scheme="http://www.lifeasbob.com/CategoryView,category,SQL%2BServer.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img src="http://www.lifeasbob.com/content/binary/shelving_in_silhouette.jpg" border="0" />
        </p>
        <p>
Starting in December I purchased the following books.  Most of these were related
to new projects where I work and knew I'd need to sharpen a few skills, Encryption,
SQL Express, Merge Replication and security.
</p>
        <ul>
          <li>
Beginning SQL Server 2008 Express for Developers: From Novice to Professional - Robin
Dewson</li>
          <li>
Enterprise Data Synchronization with Microsoft SQL Server 2008 and SQL Server Compact
3.5 
</li>
          <li>
Mobile Merge Replication - Rob Tiffany</li>
          <li>
SQL Server MVP Deep Dives</li>
          <li>
Expert SQL Server 2008 Encryption - Michael Coles, Rodney Landrum</li>
          <li>
SQL Server Forensic Analysis - Kevvie Fowler [bought but not reviewed]<br /></li>
        </ul>
        <p align="center">
          <strong>
            <u>Reviews:</u>
          </strong>
        </p>
        <p>
          <strong>
            <u>Beginning SQL Server 2008 Express for Developers: From Novice to Professional
- Robin Dewson</u>
          </strong>
        </p>
        <p>
This book was a disappointment, but I knew when purchasing it that it was probably
not going to be of much help; but I had to start somewhere.  We're preparing
to migrate from MSDE to SQL Express 2K8 in 10,000 locations; I was involved in the
intial deployment (and patchings) of MSDE and I really need to figure out how to avoid
the gotchas with SQL Express; this book wasn't it.  Over-all it's a good book,
but it's not meant for an existing SQL Server DBA, I would expect even a Jr. DBA to
already be familiar with the content.  It truly is meant for an access developer
who wants to learn SQL Express; I gave it to our local access programmer at work {though
it's actually a she and she's not in IT or a programmer, seems that is where
most access db's begin life}, maybe she'll develop a new career path, we seriously
need more women in IT, I digress.
</p>
        <p>
          <strong>
            <u>Enterprise Data Synchronization with Microsoft SQL Server 2008 and SQL
Server Compact 3.5 Mobile Merge</u>
          </strong>
        </p>
        <p>
This book was great.  We're deploying Merge replication with up to possibly 10,000
differnt locations to SQL Express 2k5 and that is why I purchased this book. 
While not an exact guide or road map for what we're doing [we're not using SQL Server
compact edition], most of the concepts apply.  It has really been helpful, we're
still in the planning and proof of concept stages, so it remains to be seen if we'll
continue with this design at work, but I feel this book helped us greatly.
</p>
        <p>
          <strong>
            <u>SQL Server MVP Deep Dives</u>
          </strong>
        </p>
        <p>
This book was great.  I kind of avoided it at first, as I don't like books that
too many people jump on as good, but this one lived up to that promise.  Very
few parts of the book were lame ! [there's a glowing recommendation].  I put
a sticky next to each new thing I learned and when I was done, i'd say there were
at least 15-20 stickeys across the book, that's worth the money I paid for it. 
It's also nice as you can read this book in quick "snippets" flipping to what subject
interests you and what you have time to read.
</p>
        <p>
          <strong>
            <u>Expert SQL Server 2008 Encryption - Michael Coles, Rodney Landrum</u>
          </strong>
        </p>
        <p>
This book is good, though a bit dry, I'm still not all the way through it...reading
about encryption is not what I'd consider an exciting topic, but it is a skill i'm
going to need and it was seriously lacking.  We're preparing to bring in a 3rd
party hardware device to provide consistent encryption and key management across the
entire enterprise, which is why I needed this book.  So far it's been a great
help, as I don't feel like a complete moron as I attend the endless meetings on implementing
enterprise encryption where i work.
</p>
        <p>
          <u>
            <strong>SQL Server Forensic Analysis - Kevvie Fowler</strong>
          </u>
        </p>
        <p>
I haven't got to reading this one yet.  I'm looking forward to it, as security
has become a major focus in ways I couldn't even imagine 2 years ago.  I thought
the description of this book is interesting, as it approaches security from the aspect
of determine what was compromised, from that I hope to learn better practices in security
data....I'll update on that later.
</p>
        <img width="0" height="0" src="http://www.lifeasbob.com/aggbug.ashx?id=c5bbee65-766a-48bf-b341-d15a4acc4ee2" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Tightrope Terror is terrible !</title>
    <link rel="alternate" type="text/html" href="http://www.lifeasbob.com/2010/02/16/TightropeTerrorIsTerrible.aspx" />
    <id>http://www.lifeasbob.com/PermaLink,guid,75950cae-d000-440c-abae-06bdea2b403f.aspx</id>
    <published>2010-02-16T07:36:46.078-06:00</published>
    <updated>2010-02-16T07:36:46.078875-06:00</updated>
    <category term="Web_Blog" label="Web_Blog" scheme="http://www.lifeasbob.com/CategoryView,category,Web_Blog.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
 
</p>
        <p>
This has to be one of the worst ever toys for kids.  There are some positive
reviews out there for this, and I'm convinced those are paid reviews or something.
</p>
        <p>
This toy does not work, it requires heavy objects to weigh it down and it is near
impossible to get the car to run on the rope.
</p>
        <p>
A huge disappointment for the kid awaits with this toy.
</p>
        <p>
I don't blog product reviews, but this one sucks so bad i had no choice.
</p>
        <p>
I'd pay money for someone to show me this toy working...
</p>
        <img src="http://www.lifeasbob.com/content/binary/TightRope_Terror.jpg" border="0" />
        <img width="0" height="0" src="http://www.lifeasbob.com/aggbug.ashx?id=75950cae-d000-440c-abae-06bdea2b403f" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Peak is over</title>
    <link rel="alternate" type="text/html" href="http://www.lifeasbob.com/2010/02/04/PeakIsOver.aspx" />
    <id>http://www.lifeasbob.com/PermaLink,guid,5fbceb21-267b-4313-8df3-ec90422ae449.aspx</id>
    <published>2010-02-04T15:12:30.593-06:00</published>
    <updated>2010-02-04T15:12:30.593625-06:00</updated>
    <category term="SQL Server" label="SQL Server" scheme="http://www.lifeasbob.com/CategoryView,category,SQL%2BServer.aspx" />
    <category term="Web_Blog" label="Web_Blog" scheme="http://www.lifeasbob.com/CategoryView,category,Web_Blog.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
January and February are peak times for my company's business; now I can start to
focus on new things, here is what I learned during peak and where 2010 will focus:
</p>
        <p>
          <a href="http://jakegarn.com/">
            <img src="http://www.lifeasbob.com/content/binary/capacity.bmp" border="0" />
          </a>
        </p>
        <ul>
          <li>
Capacity management is the 2nd most important thing dba's do.</li>
          <li>
Performance tuning and monitoring is the most important thing (during peak)</li>
          <li>
Locking and Blocking is the biggest scale issue i regularly see.</li>
          <li>
Mirroring on SQL Server standard edition sucks (especially for geographically disperse
sites).</li>
          <li>
Mirroring on SQL Server enterprise edition rocks (though the cost factor is prohibitive).</li>
          <li>
Informatica is no better an ETL Tool than SSIS</li>
          <li>
Oracle and SQL Server are a pain in the ass to make work together (Oracle
DBAs are'nt much help either)</li>
          <li>
1 terrabyte of disk space is almost enough !</li>
          <li>
Re-indexing and defragging is analogous to politics and religion and DBA's should
be barred from discussing the topic</li>
          <li>
Encryption is a pain in the ass.</li>
          <li>
Surprise - Merge replication actually works and is not near the PIA I thought</li>
          <li>
6gb of RAM is never enough</li>
          <li>
Polyserve is not worth the effort</li>
          <li>
VM Ware with VMotion is awesome</li>
          <li>
VM Ware is a good alternative to Polyserve</li>
          <li>
Hyper-V is not there yet</li>
          <li>
SQL 2008 R2 licensing sucks 
</li>
          <li>
SQL 2000 is finally no longer meeting the business requirements and we may finally
get funding to upgrade the remaining instances !</li>
        </ul>
        <img width="0" height="0" src="http://www.lifeasbob.com/aggbug.ashx?id=5fbceb21-267b-4313-8df3-ec90422ae449" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Need an H&amp;R Block Coupon ?</title>
    <link rel="alternate" type="text/html" href="http://www.lifeasbob.com/2010/01/14/NeedAnHRBlockCoupon.aspx" />
    <id>http://www.lifeasbob.com/PermaLink,guid,2bbbbbb7-4ecf-4d14-93df-525ee7934c97.aspx</id>
    <published>2010-01-14T10:25:21.836-06:00</published>
    <updated>2010-01-14T10:26:25.149-06:00</updated>
    <category term="Web_Blog" label="Web_Blog" scheme="http://www.lifeasbob.com/CategoryView,category,Web_Blog.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Need an H&amp;R Block Coupon ?
</p>
        <img src="http://www.lifeasbob.com/content/binary/moneyhandshake.jpg" border="0" />
        <p>
Coupon's for new H&amp;R Block Customers, $30.00.
</p>
        <p>
 
</p>
        <p>
Drop me a comment.
</p>
        <img width="0" height="0" src="http://www.lifeasbob.com/aggbug.ashx?id=2bbbbbb7-4ecf-4d14-93df-525ee7934c97" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Calculate Stock Break Even Price</title>
    <link rel="alternate" type="text/html" href="http://www.lifeasbob.com/2009/12/23/CalculateStockBreakEvenPrice.aspx" />
    <id>http://www.lifeasbob.com/PermaLink,guid,2dd97cf2-c852-4e52-a94f-1f8aff3fa3a7.aspx</id>
    <published>2009-12-23T11:41:59.531-06:00</published>
    <updated>2009-12-23T11:45:47.90625-06:00</updated>
    <category term="Web_Blog" label="Web_Blog" scheme="http://www.lifeasbob.com/CategoryView,category,Web_Blog.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Stock Break Even Work Sheet.
</p>
        <p>
          <img src="http://www.lifeasbob.com/content/binary/gemmatkinsonnewspapersm.jpg" border="0" />
        </p>
        <p>
This is something I worked out a while back.  Oddly I couldn't find an easy
formula to plug in for excel, so I had to create one.  Recently somebody
asked me for it, so I wanted to post it here so I could reference it.  The reason
for creating this is I was trying to buy some ford stock at a 1.60 a share and wanted
to know what the break even price was if I had to bale out of it.  Of course
I didn't bail out and today it's a $9 something a share, "Quality is job 1"; Ford
made my year !
</p>
        <p>
Basically I needed a formula that would help me calculate how much a stock must rise
in price to cover my commissions and taxes and break even. 
</p>
        <p>
There is some really good reading here in this book, Page 116, "Calculating the Stock
Break Even Sales Price", my formula is adapted from that, good book to read.
</p>
        <p>
          <a href="http://books.google.com/books?id=YmZV-Jxt28kC&amp;pg=PA114&amp;lpg=PA114&amp;dq=break+even+formula+for+selling+stocks&amp;source=bl&amp;ots=dR84EvLZGH&amp;sig=dL-LdOG4oEptNx1wrrW9xaisjUY&amp;hl=en&amp;ei=NUGxSeHSAo3Btgequ-TDBw&amp;sa=X&amp;oi=book_result&amp;resnum=1&amp;ct=result#v=onepage&amp;q=&amp;f=false">http://books.google.com/books?id=YmZV-Jxt28kC&amp;pg=PA114&amp;lpg=PA114&amp;dq=break+even+formula+for+selling+stocks&amp;source=bl&amp;ots=dR84EvLZGH&amp;sig=dL-LdOG4oEptNx1wrrW9xaisjUY&amp;hl=en&amp;ei=NUGxSeHSAo3Btgequ-TDBw&amp;sa=X&amp;oi=book_result&amp;resnum=1&amp;ct=result#v=onepage&amp;q=&amp;f=false</a>
        </p>
        <p>
Technincally my formula is not 100% accurate as depending on your particular tax situation
the rate can can change between 15% or 28% and there is some "cost basis" versus "individual
lots".  The forumula is just meant to be used as a guide, your actual mileage
may vary.
</p>
        <p>
I've updloaded the excel spreadhseet here.<br /><a href="http://www.lifeasbob.com/content/binary/Stock_Break_Even_Price.xls">Stock_Break_Even_Price.xls
(22.5 KB)</a></p>
        <p>
Here is the formula, surprisingly my Algebra was terrible and it took me awhile to
solve this.
</p>
        <p>
          <img src="http://www.lifeasbob.com/content/binary/tinafeyglasses.jpg" border="0" />
        </p>
        <p>
          <br />
Variable Description<br />
 <br />
N # of Shares<br />
B  Buy Price per Share<br />
C1  Buy Commission<br />
C2 Sell Commission<br />
P  Purchase Cost (Cash out)<br />
X Sell Price Per Share<br />
T Total Cash In<br />
TR  Tax Rate<br />
TX Total Taxes<br />
G Gain<br />
 Calculate Gain
</p>
        <p>
Example Ford Stock 1.60 per share, 100 shares, 10 commission for both buy and sell<br />
 <br />
Description   Formulas                          Example<br />
Cost            (N*B)
+ C1 = P                 (100
* 1.6) + 10 = 170<br />
Gross           (N*X) - C2
= T                 (100
* X) - 10 = T<br />
Taxes           ((N*X) - (N*B))*TR=TX     ((
100 * X) - (100 * 1.6)) * .15 = TX<br />
Break Even    T-P-TX=0                       
((100 * X) - 10) - 170 - ((( 100 * X ) - (100 * 1.6)) * .15) = 0<br />
                                                        ((100
* X) - 10) - ((( 100 * X ) - (100 * 1.6)) * .15) = 170<br />
 How to solve for x ?                            (100X
- 10) - ((100X  - 160) * .15) = 170<br />
                                                        (100X
- 10) - (15X  + 24) = 170<br />
                                                        100X
- 10 - 15X  + 24 = 170<br />
                                                        100X 
- 15X = 156<br />
                                                        85X
= 156<br />
                                                        X=1.835294118
</p>
        <img width="0" height="0" src="http://www.lifeasbob.com/aggbug.ashx?id=2dd97cf2-c852-4e52-a94f-1f8aff3fa3a7" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Migrating from one Cluster to Another (Polyserve to Microsoft)</title>
    <link rel="alternate" type="text/html" href="http://www.lifeasbob.com/2009/12/01/MigratingFromOneClusterToAnotherPolyserveToMicrosoft.aspx" />
    <id>http://www.lifeasbob.com/PermaLink,guid,084b34ac-7b00-491c-8ba2-4582bda484d4.aspx</id>
    <published>2009-12-01T13:54:25.045-06:00</published>
    <updated>2009-12-01T13:54:25.045125-06:00</updated>
    <category term="Polyserve" label="Polyserve" scheme="http://www.lifeasbob.com/CategoryView,category,Polyserve.aspx" />
    <category term="SQL Server" label="SQL Server" scheme="http://www.lifeasbob.com/CategoryView,category,SQL%2BServer.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Migrating from one cluster technology to another or even with-in the same technology
is fairly easy.  Recently I'm run into an issue where we need to migrate a SQL
Server Instance from a HP Polyserve Cluster to a Microsoft Cluster.
</p>
        <p>
There were two issues I found in setting this up:
</p>
        <ul>
          <li>
Installing SQL Server on a Microsoft Cluster requires a virtual name 
</li>
          <li>
Keeping the exact same Port Number</li>
        </ul>
        <p>
The reason for the above two issues was to keep the down time to an absolute minimum
and ensure there were no changes necessary to the application or infrastructure (firewalls).
</p>
        <p>
Fortunately both HP Polyserve and Microsoft Clustering use virtual names, this is
what makes this possible.
</p>
        <p>
I found the following two links helpful:
</p>
        <p>
          <a href="http://msdn.microsoft.com/en-us/library/ms178083(SQL.90).aspx">How to: Rename
a SQL Server 2005 Virtual Server</a>
          <br />
          <a href="http://support.microsoft.com/kb/244980">How to change the network IP addresses
of SQL Server failover cluster instances<br /></a>
        </p>
        <p>
The key to making this happen is to install SQL Server using a temporary Virtual name
and IP Address and ensure to use the EXACT Same instance name.  Instance names
can not be changed with SQL Server 2005 (or at least it's not supported to change
them).  Changing the port number is pretty standard stuff.
</p>
        <p>
Now you can pre-test your migration of databases and user logins, and load test the
new hardware.  
</p>
        <p>
At the designated change time we performed the following.
</p>
        <ul>
          <li>
Take the Microsoft Cluster Off line 
</li>
          <li>
Take the Instance on HP Polyserve and delete the Instance and virtual name (binaries
and data files will be kept as a backout plan) 
</li>
          <li>
Using the SQL Server Configuration editor, change the IP address <strong>on all nodes</strong> in
the Microsoft Cluster: 
</li>
          <li>
Using the Cluster Administrator change the SQL Server IP Address 
</li>
          <li>
Using the Cluster Administrator change the SQL Server network name 
</li>
          <li>
Bring the Cluster on-line 
</li>
          <li>
Test</li>
        </ul>
        <p>
The one issue we ran into was with logical networks and VLANS, I don't have a complete
understanding of network topology, but only certain logical networks with-in our environment
can host different ranges of IP Addresses.  Initiall we built the new cluster
on a logical network that was unable to host the existing virtual name and the switch
failed, ensure to talk to your network, windows and DNS engineers about exactly what
your wanting to do so they can build things properly the first time, as they don't
like switching and changing things twice any more than DBA's do !
</p>
        <p>
          <img src="http://www.lifeasbob.com/content/binary/sql_network_switch.JPG" border="0" />
        </p>
        <p>
          <img src="http://www.lifeasbob.com/content/binary/sql_ip_switch.JPG" border="0" />
        </p>
        <p>
          <img src="http://www.lifeasbob.com/content/binary/sql_network_name_switch.JPG" border="0" />
        </p>
        <img width="0" height="0" src="http://www.lifeasbob.com/aggbug.ashx?id=084b34ac-7b00-491c-8ba2-4582bda484d4" />
      </div>
    </content>
  </entry>
  <entry>
    <title>SQL Server Security, not where it needs to be ?</title>
    <link rel="alternate" type="text/html" href="http://www.lifeasbob.com/2009/12/01/SQLServerSecurityNotWhereItNeedsToBe.aspx" />
    <id>http://www.lifeasbob.com/PermaLink,guid,517a9bf2-ad51-4e8c-b5ee-f014e4b0d45f.aspx</id>
    <published>2009-12-01T13:08:40.12325-06:00</published>
    <updated>2009-12-01T13:08:40.12325-06:00</updated>
    <category term="SQL Server" label="SQL Server" scheme="http://www.lifeasbob.com/CategoryView,category,SQL%2BServer.aspx" />
    <category term="SQL Server / Security" label="SQL Server / Security" scheme="http://www.lifeasbob.com/CategoryView,category,SQL%2BServer%2B%2c%2BSecurity.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
SQL Server security, logins, auditing and reporting still not where it needs to be
?  Maybe someone can help me with ideas, if so <a href="mailto://bobh@lifeasbob.com">email</a>, me
or leave me some comments.
</p>
        <p>
          <img style="WIDTH: 272px; HEIGHT: 265px" height="265" src="http://www.lifeasbob.com/content/binary/policewomancostume.jpg" width="298" border="0" />
        </p>
        <p>
I've been through a lot of requirements and implementing everything the information
security group wants is like Macgyver with duct tape.  Currently this is for
SQL 2005, but I'd like to know how to implement it for SQL 2008 as well.
</p>
        <p>
Currently I'm meeting the following Information Security requirements:
</p>
        <ul>
          <li>
Limit Logins by specific IP or IP Ranges in combination with Time of Day [login trigger] 
</li>
          <li>
Limit Logins by Time of Day [login trigger] 
</li>
          <li>
Disconnect logins that are connected past there authorized time. [job running every
5 minutes] 
</li>
          <li>
Keep Record of All Logins (success or Failures) [daily job to scrape error log] 
</li>
          <li>
Keep Counts of Login Failures [daily job to scrape error log] 
</li>
          <li>
Keep track of Date and Time Password was changed (sql authenticated only) [Tracing] 
</li>
          <li>
Provide reporting and alerting that shows counts of failure, by month, by id etc.
[Reporting Services and SQL Agent] 
</li>
          <li>
Limit number of concurrent connections by ID and by Global Count [login trigger],
so the max number of connections for an instance may be 1000, and the max for a user
maybe 5, and the max for the application id may be 300.</li>
        </ul>
        <p>
Now they want me to selectively enforce password length and expiration based on the
following requirements for SQL Server Authenticated:
</p>
        <ul>
          <li>
            <strong>Service accounts</strong>  28 characters, expire yearly  (accounts
that are not, or should not be used for general sign on’s and limited by what machine(s)
they can login from) 
</li>
          <li>
            <strong>Admin accounts</strong> 15 characters, expire yearly (accounts that are used
by DBA’s) 
</li>
          <li>
            <strong>User accounts</strong> 8 characters, expire every 90 days (normal user accounts)
[this is easy as our Active Directory can enforce this]</li>
        </ul>
        <p>
It just seems that meeting all these requirements in SQL becomes very difficult to
administer; we're running a combination of:
</p>
        <ul>
          <li>
Dedicated database for reporting, configuration and capture of statistics 
</li>
          <li>
Login Trigger (difficult to administer and one little issue everyone is locked out) 
</li>
          <li>
Tracing (to capture when a user changes their password) 
</li>
          <li>
SQL Agent jobs (to clean up, scrape and roll over reporting tables) 
</li>
          <li>
Reporting Services (for reporting) 
</li>
          <li>
Enabling the DAC 
</li>
          <li>
Enabling Login Auditing 
</li>
          <li>
Enabling CCC (Common Criteria Compliance)</li>
        </ul>
        <p>
My counter-parts in Oracle seem to have an easier time meeting all these requirements,
with less overhead, easier to administer and keep running, and less danger of locking
everyone out.
</p>
        <p>
SQL Server continues to frustrate me with this, anyone have suggestions or an easier
time with SQL Server 2005 or 2008?
</p>
        <p>
All these things should be available out of the box, duct taping all that stuff together
in sql server is absolutely brutal, documenting and training someone on it is even
worse.
</p>
        <p>
It does provide good job security, as let the <strong><u>suits</u></strong> out source
the DBA Staff after implementing all of these requirements and they'd sure have a
tough time finding someone to run this stuff easily!
</p>
        <p>
The "Suits" and "Information Security"!
</p>
        <p>
          <img src="http://www.lifeasbob.com/content/binary/suits.jpg" border="0" />
        </p>
        <img width="0" height="0" src="http://www.lifeasbob.com/aggbug.ashx?id=517a9bf2-ad51-4e8c-b5ee-f014e4b0d45f" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Hunting Missouri Public Land</title>
    <link rel="alternate" type="text/html" href="http://www.lifeasbob.com/2009/11/14/HuntingMissouriPublicLand.aspx" />
    <id>http://www.lifeasbob.com/PermaLink,guid,e762f5c0-66fb-423b-811a-c7bc9c153cc3.aspx</id>
    <published>2009-11-14T14:35:48.74-06:00</published>
    <updated>2009-11-18T14:37:16.287625-06:00</updated>
    <category term="Web_Blog" label="Web_Blog" scheme="http://www.lifeasbob.com/CategoryView,category,Web_Blog.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Hunting Public land evokes images and stories of many orange hats grouped together
shooting each other !
</p>
        <p>
But when you don't have access to private land, you have to go public!  This
past weekend for opening day of deer season, my buddy Dale and I went down to Clinton
Missouri, around Truman Lake to hunt.  There is a lot of pulic land around Truman
lake for hunting, i've read estimate of up to 75,000 acres.
</p>
        <p>
The key is scouting, scouting, scouting, and lots of walking.
</p>
        <p>
We ended up not doing as much scouting as we wanted, but found what we thought was
a nice area with lots of potential.  We didn't see much.
</p>
        <p>
There was a lot of shooting around us, but they must have been poor shots as we didn't
see anyone with a deer.
</p>
        <p>
Lots of "road hunters", many would drive down a path, jump out for 30 minutes and
then walk back, not sure what these guys were doing; maybe they weren't seeing much
either and looking for a better place.
</p>
        <p>
Ended up having some of these road hunters blast 3 rounds in quick succession at some
running does (there's a good idea !), and scared them right to the side of
me, about 25 yards.  Unfortunately they were so spooked that I was unable to
swing around 45 degrees and get a shot off, so I just got to stare at them for a bit
and hope to see them another day.
</p>
        <p>
 
</p>
        <p>
          <img src="http://www.lifeasbob.com/content/binary/mo_public_land.JPG" border="0" />
        </p>
        <p>
I finally found some private land to hunt for no cost, we'll see how that goes next.
</p>
        <img width="0" height="0" src="http://www.lifeasbob.com/aggbug.ashx?id=e762f5c0-66fb-423b-811a-c7bc9c153cc3" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Table dump in SSIS, not in order</title>
    <link rel="alternate" type="text/html" href="http://www.lifeasbob.com/2009/11/04/TableDumpInSSISNotInOrder.aspx" />
    <id>http://www.lifeasbob.com/PermaLink,guid,a4fc85e9-14af-403e-acc7-d4c621d11154.aspx</id>
    <published>2009-11-04T15:30:59.043-06:00</published>
    <updated>2009-11-04T15:30:59.0434753-06:00</updated>
    <category term="SQL Server" label="SQL Server" scheme="http://www.lifeasbob.com/CategoryView,category,SQL%2BServer.aspx" />
    <category term="SQL Server / SSIS" label="SQL Server / SSIS" scheme="http://www.lifeasbob.com/CategoryView,category,SQL%2BServer%2B%2c%2BSSIS.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img src="http://www.lifeasbob.com/content/binary/moneyroll.jpg" border="0" />
        </p>
        <p>
Don't expect your queries to be in order without a select statement, guess what same
goes for SSIS!
</p>
        <p>
Today I had to trouble-shoot a package (not developed by me or our SQL DBA Group),
but regardless, it becomes our problem !
</p>
        <p>
SSIS was exporting a table to a flat file, turns out this flat file is really an XML
File.  The table is populated with XML from a stored procedure prior to the export. 
The data pump ole db source was a table, turns out it's not always in order, resulting
in malformed XML.  Change the source from table to a select statement with an
order by clause and all is working well, fortunately there was a rowid (identity)
column in the table already.
</p>
        <p>
Frustruating to the end user, as it was a package that had been working fine for months.
</p>
        <p>
Of course there was no primary key, making this a heap table; but either way, if the
requirement is to have the data ordered, than you need an order by statement, even
if the data is "in the table that way", and even for SSIS.  [Be nice if Microsoft
put a warning on there that the data access mode may not be in order.]
</p>
        <p>
This seems to be more of a problem on heap tables (no primay key) and Enterprise edition
sql (which supports Merry-go-round scans [i think that's what it's called]).
</p>
        <p>
          <img src="http://www.lifeasbob.com/content/binary/ssis_table_dump.jpg" border="0" />
        </p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.lifeasbob.com/aggbug.ashx?id=a4fc85e9-14af-403e-acc7-d4c621d11154" />
      </div>
    </content>
  </entry>
</feed>