Thursday, May 27, 2004

One more thing that broke as a result of a Windows 2000 to 2003 Inplace Upgrade

Several weeks ago I did an in-place upgrade of my current employers Internal Network this involved upgrading all DC’s to W2k3 and Exchange from 2000 to 2003. Most things went okay with a few odd problems mainly revolving around some Internal Apps that we have written and some other problems with MSDE (JET) and FBA on Exchange. Another one of these little problems popped up today we have an Internal Access ADP application that accessed Active directory though a a SQL view that does an OpenQuery using a Linked server in SQL. In Windows 2000 this code used to work fine from any workstation but after the upgrade to 2003 these queries would fail with ICommandPrepare::Prepare returned 0x80040e14 error. After some investigations I found the problem was being caused because of the Linked Server security settings. I had set the Linked server to use the current users credentials which when your using a Access linked table somewhere on the line gets dropped out and I believe it ends up making a anonymous query. This lead me to further investigate why this worked on 2000 and stopped working on 2003. I found that in Windows 2000 the everyone group had read access to LDAP, in Windows 2003 anonymous operations on Active Directory are now disabled see Q326690 .Well the way I ended up fixing my problem was to assign an account that my linked server queries could run under and everything was okay.