<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" version="2.0">
  <channel>
    <title>George Wesolowski's .NET Weblog</title>
    <link>http://www.georgewesolowski.com/blog/</link>
    <description />
    <language>en-us</language>
    <copyright>George D. Wesolowski</copyright>
    <lastBuildDate>Tue, 05 Dec 2006 02:23:18 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.8.5223.0</generator>
    <managingEditor>george@georgewesolowski.com</managingEditor>
    <webMaster>george@georgewesolowski.com</webMaster>
    <item>
      <trackback:ping>http://www.georgewesolowski.com/blog/Trackback.aspx?guid=6808c71c-9efb-47f7-9068-247e00501db3</trackback:ping>
      <pingback:server>http://www.georgewesolowski.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.georgewesolowski.com/blog/PermaLink,guid,6808c71c-9efb-47f7-9068-247e00501db3.aspx</pingback:target>
      <dc:creator>george@georgewesolowski.com (George Wesolowski)</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Here's the scenario that tripped us up during our SQL Server 2005 upgrade:  
   </p>
        <p>
      Consider a stored procedure that executes a BULK INSERT command where the file in
      the FROM clause is located on a remote machine.  When executing this stored procedure
      using a trusted connection, i.e., Windows Authentication, the Windows account must
      be <em>trusted for delegation</em> in order for this stored procedure to be executed <strong><em>remotely</em></strong>. 
      However, based on my testing, the following scenarios will work:
   </p>
        <ol>
          <li>
         Modify the stored procedure to BULK INSERT a local file, i.e., local to the SQL Server. 
         The stored procedure can be successfully executed either locally or remotely,</li>
          <li>
         Execute the stored proceude that BULK INSERTs a remote file locally on the SQL Server
         machine.  In other words, the SQL Client and SQL Server machines must be one
         and the same.</li>
        </ol>
        <p>
      For the most common client / server scenario (separate client and server machines
      with the BULK INSERT file located on a third server) the Windows account used to execute
      the stored procedure must be trusted for delegation.  
   </p>
        <p>
      However, from a security perspective, using SQL authentication is probably the best
      solution ...
   </p>
        <p>
       
   </p>
        <img width="0" height="0" src="http://www.georgewesolowski.com/blog/aggbug.ashx?id=6808c71c-9efb-47f7-9068-247e00501db3" />
      </body>
      <title>SQL Server 2005 Bulk Insert using Windows Authentication ...</title>
      <guid>http://www.georgewesolowski.com/blog/PermaLink,guid,6808c71c-9efb-47f7-9068-247e00501db3.aspx</guid>
      <link>http://www.georgewesolowski.com/blog/PermaLink,guid,6808c71c-9efb-47f7-9068-247e00501db3.aspx</link>
      <pubDate>Tue, 05 Dec 2006 02:23:18 GMT</pubDate>
      <description>&lt;p&gt;
   Here's the scenario that tripped us up during our SQL Server 2005 upgrade:&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
   Consider a stored procedure that executes a BULK INSERT command where the file in
   the FROM clause is located on a remote machine.&amp;nbsp; When executing this stored procedure
   using a trusted connection, i.e., Windows Authentication, the Windows account must
   be &lt;em&gt;trusted for delegation&lt;/em&gt; in order for this stored procedure to be executed &lt;strong&gt;&lt;em&gt;remotely&lt;/em&gt;&lt;/strong&gt;.&amp;nbsp;
   However, based on my testing, the following scenarios will work:
&lt;/p&gt;
&lt;ol&gt;
   &lt;li&gt;
      Modify the stored procedure to BULK INSERT a local file, i.e., local to the SQL Server.&amp;nbsp;
      The stored procedure can be successfully executed either locally or remotely,&lt;/li&gt;
   &lt;li&gt;
      Execute the stored proceude that BULK INSERTs a remote file locally on the SQL Server
      machine.&amp;nbsp; In other words, the SQL Client and SQL Server machines must be one
      and the same.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
   For the most common client / server scenario (separate client and server machines
   with the BULK INSERT file located on a third server) the Windows account used to execute
   the stored procedure must be trusted for delegation.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
   However, from a security perspective, using SQL authentication is probably the best
   solution ...
&lt;/p&gt;
&lt;p&gt;
   &amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.georgewesolowski.com/blog/aggbug.ashx?id=6808c71c-9efb-47f7-9068-247e00501db3" /&gt;</description>
    </item>
    <item>
      <trackback:ping>http://www.georgewesolowski.com/blog/Trackback.aspx?guid=a81be3de-01bb-480e-9fe3-376944ed9486</trackback:ping>
      <pingback:server>http://www.georgewesolowski.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.georgewesolowski.com/blog/PermaLink,guid,a81be3de-01bb-480e-9fe3-376944ed9486.aspx</pingback:target>
      <dc:creator>george@georgewesolowski.com (George Wesolowski)</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      I'm not usually a big fan of screen savers - I always lock my desktop(s) before stepping
      away from my desk - but I've run into an excellent one <a href="http://www.microsoft.com/technet/sysinternals/miscellaneous/BlueScreen.mspx">here</a>. 
      It's a simulation of a "blue screen of death" followed by a reboot - very realistic
      (right down to simulating disk activity) ...
   </p>
        <p>
      Install this one and play a trick on your favorite network admin!  (But first
      make sure he has a sense of humor!)
   </p>
        <img width="0" height="0" src="http://www.georgewesolowski.com/blog/aggbug.ashx?id=a81be3de-01bb-480e-9fe3-376944ed9486" />
      </body>
      <title>My Favorite Screen Saver ...</title>
      <guid>http://www.georgewesolowski.com/blog/PermaLink,guid,a81be3de-01bb-480e-9fe3-376944ed9486.aspx</guid>
      <link>http://www.georgewesolowski.com/blog/PermaLink,guid,a81be3de-01bb-480e-9fe3-376944ed9486.aspx</link>
      <pubDate>Thu, 16 Nov 2006 19:00:20 GMT</pubDate>
      <description>&lt;p&gt;
   I'm not usually a big fan of screen savers - I always lock my desktop(s) before stepping
   away from my desk - but I've run into an excellent&amp;nbsp;one &lt;a href="http://www.microsoft.com/technet/sysinternals/miscellaneous/BlueScreen.mspx"&gt;here&lt;/a&gt;.&amp;nbsp;
   It's a&amp;nbsp;simulation of a "blue screen of death" followed by a reboot - very realistic
   (right down to simulating disk activity) ...
&lt;/p&gt;
&lt;p&gt;
   Install this one and play a trick on your favorite network admin!&amp;nbsp; (But first
   make sure he has a sense of humor!)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.georgewesolowski.com/blog/aggbug.ashx?id=a81be3de-01bb-480e-9fe3-376944ed9486" /&gt;</description>
    </item>
    <item>
      <trackback:ping>http://www.georgewesolowski.com/blog/Trackback.aspx?guid=830d4f54-6ad3-4673-8430-c24d61eebe0e</trackback:ping>
      <pingback:server>http://www.georgewesolowski.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.georgewesolowski.com/blog/PermaLink,guid,830d4f54-6ad3-4673-8430-c24d61eebe0e.aspx</pingback:target>
      <dc:creator>george@georgewesolowski.com (George Wesolowski)</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Our recent conversion from SQL Server 2000 to SQL Server 2005 revealed a couple of
      issues with stored procedures that run BULK INSERT commands.  [These issues were
      not issues with under SQL Server 2000.]
   </p>
        <p>
      1.  "Operating system error code 5(Access is Denied)" when attempting to execute
      this command using Windows Authentication.  This appears to be an impersonation
      / delegation issue that we believe we can fix with delegation.  [<em>Stay tuned
      ...</em>]
   </p>
        <p>
      2.  Assorted format file errors "Invalid destination table column number ...",
      "Bulk load data conversion error (truncation)", etc.  We've been able to workaround
      these by increasing the column widths for some of the column definitions.
   </p>
        <p>
      The moral of the story is to test everything that calls a BULK INSERT carefully as
      part of the upgrade process ...
   </p>
        <img width="0" height="0" src="http://www.georgewesolowski.com/blog/aggbug.ashx?id=830d4f54-6ad3-4673-8430-c24d61eebe0e" />
      </body>
      <title>SQL Server Bulk Insert Woes ...</title>
      <guid>http://www.georgewesolowski.com/blog/PermaLink,guid,830d4f54-6ad3-4673-8430-c24d61eebe0e.aspx</guid>
      <link>http://www.georgewesolowski.com/blog/PermaLink,guid,830d4f54-6ad3-4673-8430-c24d61eebe0e.aspx</link>
      <pubDate>Wed, 15 Nov 2006 18:50:38 GMT</pubDate>
      <description>&lt;p&gt;
   Our recent conversion from SQL Server 2000 to SQL Server 2005 revealed a couple of
   issues with stored procedures that run BULK INSERT commands.&amp;nbsp; [These issues were
   not issues with under SQL Server 2000.]
&lt;/p&gt;
&lt;p&gt;
   1.&amp;nbsp; "Operating system error code 5(Access is Denied)" when attempting to execute
   this command using Windows Authentication.&amp;nbsp; This appears to be an impersonation
   / delegation issue that we believe we can fix with delegation.&amp;nbsp; [&lt;em&gt;Stay tuned
   ...&lt;/em&gt;]
&lt;/p&gt;
&lt;p&gt;
   2.&amp;nbsp; Assorted format file errors "Invalid destination table column number ...",
   "Bulk load data conversion error (truncation)", etc.&amp;nbsp; We've been able to workaround
   these by increasing the column widths for some of the column definitions.
&lt;/p&gt;
&lt;p&gt;
   The moral of the story is to test everything that calls a BULK INSERT carefully as
   part of the upgrade process ...
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.georgewesolowski.com/blog/aggbug.ashx?id=830d4f54-6ad3-4673-8430-c24d61eebe0e" /&gt;</description>
    </item>
    <item>
      <trackback:ping>http://www.georgewesolowski.com/blog/Trackback.aspx?guid=ead45850-821d-4d61-9c99-d38a00c52878</trackback:ping>
      <pingback:server>http://www.georgewesolowski.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.georgewesolowski.com/blog/PermaLink,guid,ead45850-821d-4d61-9c99-d38a00c52878.aspx</pingback:target>
      <dc:creator>george@georgewesolowski.com (George Wesolowski)</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      This space has been a little quiet for a while now but I've been busy with a major
      SQL Server upgrade as well as architecting a generic job scheduling environment (and
      working with DataGridViews for our standard data entry screens) ...
   </p>
        <p>
      Look for upcoming posts on the difficulties we've run into with our SQL Server upgrade
      ...
   </p>
        <img width="0" height="0" src="http://www.georgewesolowski.com/blog/aggbug.ashx?id=ead45850-821d-4d61-9c99-d38a00c52878" />
      </body>
      <title>SQL Server 2005 Upgrade et al ...</title>
      <guid>http://www.georgewesolowski.com/blog/PermaLink,guid,ead45850-821d-4d61-9c99-d38a00c52878.aspx</guid>
      <link>http://www.georgewesolowski.com/blog/PermaLink,guid,ead45850-821d-4d61-9c99-d38a00c52878.aspx</link>
      <pubDate>Mon, 13 Nov 2006 18:39:28 GMT</pubDate>
      <description>&lt;p&gt;
   This space has been a little quiet for a while now but I've been busy with a major
   SQL Server upgrade as well as architecting a generic job scheduling environment (and
   working with DataGridViews for our standard data entry screens) ...
&lt;/p&gt;
&lt;p&gt;
   Look for upcoming posts on the difficulties we've run into with our SQL Server upgrade
   ...
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.georgewesolowski.com/blog/aggbug.ashx?id=ead45850-821d-4d61-9c99-d38a00c52878" /&gt;</description>
    </item>
    <item>
      <trackback:ping>http://www.georgewesolowski.com/blog/Trackback.aspx?guid=aee51d3d-94fc-4ce6-b492-7805ff8f83a9</trackback:ping>
      <pingback:server>http://www.georgewesolowski.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.georgewesolowski.com/blog/PermaLink,guid,aee51d3d-94fc-4ce6-b492-7805ff8f83a9.aspx</pingback:target>
      <dc:creator>george@georgewesolowski.com (George Wesolowski)</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      I ran into a situation on my SQL Server 2005 test machine where I wanted to swap database
      files that were installed on two separate instances of SQL Server 2005.  [One
      instance is the "default" instance, and one is named "Instance1".]  The database
      files are located in a parallel file structure like so:
   </p>
        <p>
      D:\SQLData\MSSQL
   </p>
        <p>
      D:\SQLData\MSSQL$INSTANCE1
   </p>
        <p>
      I figured the easiest way to accomplish this is to detach the databases from both
      servers, shutdown the SQL Services, swap the names of the two directories, startup
      the SQL Services, and reattach the databases.  Upon reattaching the databases,
      I recieved a permissions failure ...
   </p>
        <p>
      To fix this, I examined the file permissions of the data and log files.  In my
      case, I needed both the local system account and the appropriate SQL Server user account
      corresponding to the SQL Server instance [in my case, the account is named SQLServer2005MSSQLUser$&lt;machine_name&gt;$&lt;instance_name&gt;]
      to have Full Control.  [Swapping the names of the folders meant the data and
      log files permissions gave Full Control to the user associated with the other instance.]
   </p>
        <p>
      All this assumes that the SQL Server instances run under the Local System account
      ...
   </p>
        <img width="0" height="0" src="http://www.georgewesolowski.com/blog/aggbug.ashx?id=aee51d3d-94fc-4ce6-b492-7805ff8f83a9" />
      </body>
      <title>Database File Permissions with Multiple Instances of SQL Server 2005 on a Single Box ...</title>
      <guid>http://www.georgewesolowski.com/blog/PermaLink,guid,aee51d3d-94fc-4ce6-b492-7805ff8f83a9.aspx</guid>
      <link>http://www.georgewesolowski.com/blog/PermaLink,guid,aee51d3d-94fc-4ce6-b492-7805ff8f83a9.aspx</link>
      <pubDate>Fri, 23 Jun 2006 15:13:15 GMT</pubDate>
      <description>&lt;p&gt;
   I ran into a situation on my SQL Server 2005 test machine where I wanted to swap database
   files that were installed on two separate instances of SQL Server 2005.&amp;nbsp; [One
   instance is the "default" instance, and one is named "Instance1".]&amp;nbsp; The database
   files are located in a parallel file structure like so:
&lt;/p&gt;
&lt;p&gt;
   D:\SQLData\MSSQL
&lt;/p&gt;
&lt;p&gt;
   D:\SQLData\MSSQL$INSTANCE1
&lt;/p&gt;
&lt;p&gt;
   I figured the easiest way to accomplish this is to detach the databases from both
   servers, shutdown the SQL Services, swap the names of the two directories, startup
   the SQL Services, and reattach the databases.&amp;nbsp; Upon reattaching the databases,
   I recieved a permissions failure ...
&lt;/p&gt;
&lt;p&gt;
   To fix this, I examined the file permissions of the data and log files.&amp;nbsp; In my
   case, I needed both the local system account and the appropriate SQL Server user account
   corresponding to the SQL Server instance [in my case, the account is named SQLServer2005MSSQLUser$&amp;lt;machine_name&amp;gt;$&amp;lt;instance_name&amp;gt;]
   to have Full Control.&amp;nbsp; [Swapping the names of the folders meant the data and
   log files permissions gave Full Control to the user associated with the other instance.]
&lt;/p&gt;
&lt;p&gt;
   All this assumes that the SQL Server instances run under the Local System account
   ...
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.georgewesolowski.com/blog/aggbug.ashx?id=aee51d3d-94fc-4ce6-b492-7805ff8f83a9" /&gt;</description>
    </item>
    <item>
      <trackback:ping>http://www.georgewesolowski.com/blog/Trackback.aspx?guid=c9321fc7-9bbf-4d84-909a-b7076c13ea87</trackback:ping>
      <pingback:server>http://www.georgewesolowski.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.georgewesolowski.com/blog/PermaLink,guid,c9321fc7-9bbf-4d84-909a-b7076c13ea87.aspx</pingback:target>
      <dc:creator>george@georgewesolowski.com (George Wesolowski)</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Here's another way around the problem:  enable and start the SQL Server Browser
      service on the SQL Server 2005 machine.  This will allow you to connect remotely
      to non-default instances without specifying the port number ...
   </p>
        <img width="0" height="0" src="http://www.georgewesolowski.com/blog/aggbug.ashx?id=c9321fc7-9bbf-4d84-909a-b7076c13ea87" />
      </body>
      <title>Helpful Hint for Connecting to Multiple Instances of SQL Server 2005, Part Deux ...</title>
      <guid>http://www.georgewesolowski.com/blog/PermaLink,guid,c9321fc7-9bbf-4d84-909a-b7076c13ea87.aspx</guid>
      <link>http://www.georgewesolowski.com/blog/PermaLink,guid,c9321fc7-9bbf-4d84-909a-b7076c13ea87.aspx</link>
      <pubDate>Wed, 17 May 2006 20:18:05 GMT</pubDate>
      <description>&lt;p&gt;
   Here's another way around the problem:&amp;nbsp; enable and start the SQL Server Browser
   service on the SQL Server 2005 machine.&amp;nbsp; This will allow you to connect remotely
   to non-default instances without specifying the port number ...
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.georgewesolowski.com/blog/aggbug.ashx?id=c9321fc7-9bbf-4d84-909a-b7076c13ea87" /&gt;</description>
    </item>
    <item>
      <trackback:ping>http://www.georgewesolowski.com/blog/Trackback.aspx?guid=f0936e80-8411-48d5-959c-18f71027ee85</trackback:ping>
      <pingback:server>http://www.georgewesolowski.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.georgewesolowski.com/blog/PermaLink,guid,f0936e80-8411-48d5-959c-18f71027ee85.aspx</pingback:target>
      <dc:creator>george@georgewesolowski.com (George Wesolowski)</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      In our test environment, we install multiple instances of SQL Server 2005 on the same
      box.  If you are having trouble remotely connecting to your non-default instances,
      be sure to do the following:
   </p>
        <p>
      1.  Make sure the TCP/IP protocol is enabled for your instance.  Use the
      SQL Server Configuration Manager (a SQL 2005 client tool) to do this.
   </p>
        <p>
      2.  While you are using this tool, make note of dynamic TCP port that your instance
      is using.  SQL Server instances communicate on a single port.  The default
      port is 1433, which is what you get for the default instance, but for additional instances,
      a dynamic port is randomly selected for you at install.
   </p>
        <p>
      3.  When remotely connecting to a SQL Server 2005 instance that is not the default
      instance, use the server name and port number.  For example, to connect to SERVER1\Instance5,
      enter "SERVER1\Instance5,&lt;nnnn&gt;", where &lt;nnnn&gt; is the dynamic port number
      of the specified instance.<br /></p>
        <p class="MsoNormal">
          <span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">
            <font face="Verdana">
            </font>
          </span>
        </p>
        <img width="0" height="0" src="http://www.georgewesolowski.com/blog/aggbug.ashx?id=f0936e80-8411-48d5-959c-18f71027ee85" />
      </body>
      <title>Helpful Hint for Connecting to Multiple Instances of SQL Server 2005 ... </title>
      <guid>http://www.georgewesolowski.com/blog/PermaLink,guid,f0936e80-8411-48d5-959c-18f71027ee85.aspx</guid>
      <link>http://www.georgewesolowski.com/blog/PermaLink,guid,f0936e80-8411-48d5-959c-18f71027ee85.aspx</link>
      <pubDate>Tue, 16 May 2006 18:22:58 GMT</pubDate>
      <description>&lt;p&gt;
   In our test environment, we install multiple instances of SQL Server 2005 on the same
   box.&amp;nbsp; If you are having trouble remotely connecting to your non-default instances,
   be sure to do the following:
&lt;/p&gt;
&lt;p&gt;
   1.&amp;nbsp; Make sure the TCP/IP protocol is enabled for your instance.&amp;nbsp; Use the
   SQL Server Configuration Manager (a SQL 2005 client tool) to do this.
&lt;/p&gt;
&lt;p&gt;
   2.&amp;nbsp; While you are using this tool, make note of dynamic TCP port that your instance
   is using.&amp;nbsp; SQL Server instances communicate on a single port.&amp;nbsp; The default
   port is 1433, which is what you get for the default instance, but for additional instances,
   a dynamic port is randomly selected for you at install.
&lt;/p&gt;
&lt;p&gt;
   3.&amp;nbsp; When remotely connecting to a SQL Server 2005 instance that is not the default
   instance, use the server name and port number.&amp;nbsp; For example, to connect to SERVER1\Instance5,
   enter "SERVER1\Instance5,&amp;lt;nnnn&amp;gt;", where &amp;lt;nnnn&amp;gt; is the dynamic port number
   of the specified instance.&lt;br&gt;
&lt;/p&gt;
&lt;p class=MsoNormal&gt;
   &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;font face=Verdana&gt;&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.georgewesolowski.com/blog/aggbug.ashx?id=f0936e80-8411-48d5-959c-18f71027ee85" /&gt;</description>
    </item>
    <item>
      <trackback:ping>http://www.georgewesolowski.com/blog/Trackback.aspx?guid=a078bc68-0b3e-4460-88b1-31d1e13f125c</trackback:ping>
      <pingback:server>http://www.georgewesolowski.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.georgewesolowski.com/blog/PermaLink,guid,a078bc68-0b3e-4460-88b1-31d1e13f125c.aspx</pingback:target>
      <dc:creator>george@georgewesolowski.com (George Wesolowski)</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      At my shop, we've been looking into the source code control integration that's available
      for our database objects such as stored procedures, functions, triggers, etc. 
      Since we are in the progress of migrating from SQL Server 2000 to SQL Server 2005,
      we looked at the integration that's available betweem VSS 2005 and SQL Server Management
      Studio ...
   </p>
        <p>
      In a nutshell, you can create a SQL Server Management Studio solution (*.ssmssln)
      that contains any number of SQL scripts (*.sql).  You have the option of scripting
      the entire database, including schema and code, in a single script, or scripting each
      object individually.  These scripts can then be managed by VSS 2005 as you would
      manage any piece of source code ...
   </p>
        <p>
      The only thing lacking is the fact that you can't directly manage what's checked into
      VSS at the "source" level vs. what's compiled in SQL Server.  However, if your
      development team is disciplined enough to use SQL Server Management Studio as the
      sole tool for managing SQL scripts (and executing the scripts as they are checked
      in), then source code management of SQL Server objects can be achieved using the combination
      of SQL Server Management Studio and VSS 2005 ...
   </p>
        <img width="0" height="0" src="http://www.georgewesolowski.com/blog/aggbug.ashx?id=a078bc68-0b3e-4460-88b1-31d1e13f125c" />
      </body>
      <title>Visual Source Safe 2005 Integration with SQL Server 2005 ...</title>
      <guid>http://www.georgewesolowski.com/blog/PermaLink,guid,a078bc68-0b3e-4460-88b1-31d1e13f125c.aspx</guid>
      <link>http://www.georgewesolowski.com/blog/PermaLink,guid,a078bc68-0b3e-4460-88b1-31d1e13f125c.aspx</link>
      <pubDate>Sat, 11 Mar 2006 00:58:45 GMT</pubDate>
      <description>&lt;p&gt;
   At my shop, we've been looking into the source code control integration that's available
   for our database objects such as stored procedures, functions, triggers, etc.&amp;nbsp;
   Since we are in the progress of migrating from SQL Server 2000 to SQL Server 2005,
   we looked at the integration that's available betweem VSS 2005 and SQL Server Management
   Studio ...
&lt;/p&gt;
&lt;p&gt;
   In a nutshell, you can create a SQL Server Management Studio solution (*.ssmssln)
   that contains any number of SQL scripts (*.sql).&amp;nbsp; You have the option of scripting
   the entire database, including schema and code, in a single script, or scripting each
   object individually.&amp;nbsp; These scripts can then be managed by VSS 2005 as you would
   manage any piece of source code ...
&lt;/p&gt;
&lt;p&gt;
   The only thing lacking is the fact that you can't directly manage what's checked into
   VSS at the "source" level vs. what's compiled in SQL Server.&amp;nbsp; However, if your
   development team is disciplined enough to use SQL Server Management Studio as the
   sole tool for managing SQL scripts (and executing the scripts as they are checked
   in), then source code management of SQL Server objects can be achieved using the combination
   of SQL Server Management Studio and VSS 2005 ...
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.georgewesolowski.com/blog/aggbug.ashx?id=a078bc68-0b3e-4460-88b1-31d1e13f125c" /&gt;</description>
    </item>
    <item>
      <trackback:ping>http://www.georgewesolowski.com/blog/Trackback.aspx?guid=4cc5fcdf-cc68-4cf0-a083-b22a8bdc92d6</trackback:ping>
      <pingback:server>http://www.georgewesolowski.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.georgewesolowski.com/blog/PermaLink,guid,4cc5fcdf-cc68-4cf0-a083-b22a8bdc92d6.aspx</pingback:target>
      <dc:creator>george@georgewesolowski.com (George Wesolowski)</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      In lieu of installing a .NET application (including referenced assemblies) to an Intranet
      server or network share, you may be tempted to copy your assemblies to a network drive
      and execute them directly from there.  However, if you've ever tried to do this,
      your application probably threw a SecurityException ...
   </p>
        <p>
      To get around this, you have a few options that are documented at <a href="http://blogs.msdn.com/shawnfa/archive/2003/06/20/57023.aspx">the
      .Net Security Blog</a>.  You could open up your security policy to fully trust
      the Intranet Zone, which is probably a bad idea.  Or, you could strongly-name
      each assembly and configure the appropriate permissions for each assembly that you
      are going to deploy, which is a better idea.  However, this means that you need
      to modify configuration settings on each user's machine every time a new assembly
      is deployed ...
   </p>
        <p>
      To avoid this, you could configure a specific network folder (and subdirectories)
      to be fully trusted.  This way, all future assemblies can be deployed to this
      network folder without the need to individually configure each assembly.  Of
      course, you still open yourself up to rogue applictions that are installed in this
      folder being fully trusted, but you are more secure than if you fully trusted your
      entire Intranet!
   </p>
        <p>
      To fully trust a specific network folder:
   </p>
        <ol>
          <li>
         Open the <em>.NET Framework 2.0 Configuration</em> applet,</li>
          <li>
         Expand the tree to <em>My Computer</em>, <em>Runtime Security Policy</em>, <em>Machine</em>, <em>Code
         Groups</em>, <em>LocalIntranet_Zone</em>,</li>
          <li>
         Right-click <em>New...</em> to create a new code group,</li>
          <li>
         Name your code group,</li>
          <li>
         Choose <em>URL</em> as the condition type for this code group,</li>
          <li>
         For the <em>URL</em>, enter a UNC path using the following format:  <em>file://\\&lt;network
         drive&gt;\folder</em></li>
          <li>
         On the next page of the wizard, select Full Trust as the existing permission
         set,</li>
          <li>
         Click Finish to add the code group ...</li>
        </ol>
        <p>
      To test that your assembly is now fully-trusted from the network path, right-click
      at the <em>Runtime Security Policy</em> node and choose <em>Evaluate Assembly... </em>. 
      If you navigate to your assembly, you can validate that your assembly is indeed fully-trusted. 
      Of course, you can always execute your assembly to validate that your assembly no
      longer throws a SecurityException, but using <em>Evaluate Assembly... </em>can come
      in handy when debugging security problems ...
   </p>
        <img width="0" height="0" src="http://www.georgewesolowski.com/blog/aggbug.ashx?id=4cc5fcdf-cc68-4cf0-a083-b22a8bdc92d6" />
      </body>
      <title>Loading a .NET Assembly from a Network Drive ...</title>
      <guid>http://www.georgewesolowski.com/blog/PermaLink,guid,4cc5fcdf-cc68-4cf0-a083-b22a8bdc92d6.aspx</guid>
      <link>http://www.georgewesolowski.com/blog/PermaLink,guid,4cc5fcdf-cc68-4cf0-a083-b22a8bdc92d6.aspx</link>
      <pubDate>Sat, 18 Feb 2006 01:24:21 GMT</pubDate>
      <description>&lt;p&gt;
   In lieu of installing a .NET application (including referenced assemblies) to an Intranet
   server or network share, you may be tempted to copy your assemblies to a network drive
   and execute them directly from there.&amp;nbsp; However, if you've ever tried to do this,
   your application probably threw a SecurityException ...
&lt;/p&gt;
&lt;p&gt;
   To get around this, you have a few options that are documented at &lt;a href="http://blogs.msdn.com/shawnfa/archive/2003/06/20/57023.aspx"&gt;the
   .Net Security Blog&lt;/a&gt;.&amp;nbsp; You could open up your security policy to fully trust
   the Intranet Zone, which is probably a bad idea.&amp;nbsp; Or, you could strongly-name
   each assembly and configure the appropriate permissions for each assembly that you
   are going to deploy, which is a better idea.&amp;nbsp; However, this means that you need
   to modify configuration settings on each user's machine every time a new assembly
   is deployed ...
&lt;/p&gt;
&lt;p&gt;
   To avoid this, you could configure a specific network folder (and subdirectories)
   to be fully trusted.&amp;nbsp; This way, all future assemblies can be deployed to this
   network folder without the need to individually configure each assembly.&amp;nbsp; Of
   course, you still open yourself up to rogue applictions that are installed in this
   folder being fully trusted, but you are more secure than if you fully trusted your
   entire Intranet!
&lt;/p&gt;
&lt;p&gt;
   To fully trust a specific network folder:
&lt;/p&gt;
&lt;ol&gt;
   &lt;li&gt;
      Open the &lt;em&gt;.NET Framework 2.0 Configuration&lt;/em&gt; applet,&lt;/li&gt;
   &lt;li&gt;
      Expand the tree to &lt;em&gt;My Computer&lt;/em&gt;, &lt;em&gt;Runtime Security Policy&lt;/em&gt;, &lt;em&gt;Machine&lt;/em&gt;, &lt;em&gt;Code
      Groups&lt;/em&gt;, &lt;em&gt;LocalIntranet_Zone&lt;/em&gt;,&lt;/li&gt;
   &lt;li&gt;
      Right-click &lt;em&gt;New...&lt;/em&gt; to create a new code group,&lt;/li&gt;
   &lt;li&gt;
      Name your code group,&lt;/li&gt;
   &lt;li&gt;
      Choose &lt;em&gt;URL&lt;/em&gt; as the condition type for this code group,&lt;/li&gt;
   &lt;li&gt;
      For the &lt;em&gt;URL&lt;/em&gt;, enter a UNC path using the following format:&amp;nbsp; &lt;em&gt;file://\\&amp;lt;network
      drive&amp;gt;\folder&lt;/em&gt;
   &lt;/li&gt;
   &lt;li&gt;
      On the next page of the wizard,&amp;nbsp;select Full Trust as the existing permission
      set,&lt;/li&gt;
   &lt;li&gt;
      Click Finish to add the code group ...&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
   To test that your assembly is now fully-trusted from the network path, right-click
   at the &lt;em&gt;Runtime Security Policy&lt;/em&gt; node and choose &lt;em&gt;Evaluate Assembly... &lt;/em&gt;.&amp;nbsp;
   If you navigate to your assembly, you can validate that your assembly is indeed fully-trusted.&amp;nbsp;
   Of course, you can always execute your assembly to validate that your assembly no
   longer throws a SecurityException, but using &lt;em&gt;Evaluate Assembly... &lt;/em&gt;can come
   in handy when debugging security problems ...
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.georgewesolowski.com/blog/aggbug.ashx?id=4cc5fcdf-cc68-4cf0-a083-b22a8bdc92d6" /&gt;</description>
    </item>
    <item>
      <trackback:ping>http://www.georgewesolowski.com/blog/Trackback.aspx?guid=bd2bb040-4f2b-4792-a8df-461bed7880c0</trackback:ping>
      <pingback:server>http://www.georgewesolowski.com/blog/pingback.aspx</pingback:server>
      <pingback:target>http://www.georgewesolowski.com/blog/PermaLink,guid,bd2bb040-4f2b-4792-a8df-461bed7880c0.aspx</pingback:target>
      <dc:creator>george@georgewesolowski.com (George Wesolowski)</dc:creator>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      I recently installed a hardware upgrade on my email server and was forced to reboot
      the machine.  [The machine is a year old or so, Socket 754 AMD64 processor, MSI
      K8T NEO-FIS2R motherboard.]  After the machine came back up, I noticed that the
      NIC driver (Realtek 8110S integrated NIC) did not load.  This had been working
      for the past 6 months or so (ever since I installed Windows Server 2003 on the machine)
      and has been used in a production environment without incident ...
   </p>
        <p>
      Perplexed, I went rooting around for a driver for this NIC that supports Windows Server
      2003 and could not find one specific to that operating system.  How in the world
      did I get it to work before ???
   </p>
        <p>
      To make a long story short, I discovered that I had previously installed the Realtek
      8169 driver, despite the warning that this driver did not match the hardware. 
      Installing this driver did the trick ...
   </p>
        <img width="0" height="0" src="http://www.georgewesolowski.com/blog/aggbug.ashx?id=bd2bb040-4f2b-4792-a8df-461bed7880c0" />
      </body>
      <title>Issue With Realtek 8110 Network Driver and Windows Server 2003 ...</title>
      <guid>http://www.georgewesolowski.com/blog/PermaLink,guid,bd2bb040-4f2b-4792-a8df-461bed7880c0.aspx</guid>
      <link>http://www.georgewesolowski.com/blog/PermaLink,guid,bd2bb040-4f2b-4792-a8df-461bed7880c0.aspx</link>
      <pubDate>Sat, 04 Feb 2006 18:12:02 GMT</pubDate>
      <description>&lt;p&gt;
   I recently installed a hardware upgrade on my email server and was forced to reboot
   the machine.&amp;nbsp; [The machine is a year old or so, Socket 754 AMD64 processor,&amp;nbsp;MSI
   K8T NEO-FIS2R motherboard.]&amp;nbsp; After the machine came back up, I noticed that the
   NIC driver (Realtek 8110S integrated NIC) did not load.&amp;nbsp; This had been working
   for the past 6 months or so (ever since I installed Windows Server 2003 on the machine)
   and has been used in a production environment without incident ...
&lt;/p&gt;
&lt;p&gt;
   Perplexed, I went rooting around for a driver for this NIC that supports Windows Server
   2003 and could not find one specific to that operating system.&amp;nbsp; How in the world
   did I get it to work before ???
&lt;/p&gt;
&lt;p&gt;
   To make a long story short, I discovered that I had previously installed the Realtek
   8169 driver, despite the warning that this driver did not match the hardware.&amp;nbsp;
   Installing this driver did the trick ...
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.georgewesolowski.com/blog/aggbug.ashx?id=bd2bb040-4f2b-4792-a8df-461bed7880c0" /&gt;</description>
    </item>
  </channel>
</rss>