<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_我思故我在我有我精彩--liangqihui</title><subtitle type="text">爱欲追而情已逝，子欲孝而亲不待。人生的困苦又怎能用一个难字囊尽百味</subtitle><id>http://feed.cnblogs.com/blog/u/9960/rss</id><updated>2012-03-22T13:53:29Z</updated><author><name>挥辉</name><uri>http://www.cnblogs.com/liangqihui/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liangqihui/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/9960/rss"/><entry><id>http://www.cnblogs.com/liangqihui/archive/2012/02/17/2355957.html</id><title type="text">word替换回车 替换换行 替换空格</title><summary type="text">1.把段落末的向下的“箭头”（Htm中的软回车符）改成word中的段落标记符（Htm中的硬回车符） 编辑－－－替换－－－－点高级，点特殊符号那项,“替换”里选那个手工换行符（从下数第五个吧），“替换为”里选第一个，段落标记，然后全部替换！！搞定～也可以直接填^l和^p,分别对应软回车和硬回车~ 2.网上下的文一般中间都空一行或几行，也可以用替换，不过要在第一栏里输（选）两次^l^l，第二栏选^p，或第一栏两次^p^p，第二栏一次^p，这是去一行空格的做法，多去几行我就不唠叨了～呵呵，至于为什么大家都知道吧？？：）</summary><published>2012-02-17T08:09:00Z</published><updated>2012-02-17T08:09:00Z</updated><author><name>挥辉</name><uri>http://www.cnblogs.com/liangqihui/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liangqihui/archive/2012/02/17/2355957.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liangqihui/archive/2012/02/17/2355957.html"/><content type="html"> &lt;table border="0" width="72%" bgcolor="#ffffff"&gt;&lt;br /&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;br /&gt;&lt;td width="97%" align="left"&gt;&lt;br /&gt;&lt;table class="wr" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="gray14"&gt;&lt;cc&gt;&lt;/cc&gt;1.把段落末的向下的&amp;#8220;箭头&amp;#8221;（Htm中的软回车符）改成word中的段落标记符（Htm中的硬回车符） &lt;br /&gt;&lt;br /&gt;编辑－－－替换－－－－点高级，点特殊符号那项,&amp;#8220;替换&amp;#8221;里选那个手工换行符（从下数第五个吧），&amp;#8220;替换为&amp;#8221;里选第一个，段落标记，然后全部替换！！搞定～也可以直接填^l和^p,分别对应软回车和硬回车~ &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2.网上下的文一般中间都空一行或几行，也可以用替换，不过要在第一栏里输（选）两次^l^l，第二栏选^p，或第一栏两次^p^p，第二栏一次^p，这是去一行空格的做法，多去几行我就不唠叨了～呵呵，至于为什么大家都知道吧？？：）&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;br /&gt;&lt;/table&gt;&lt;img src="http://www.cnblogs.com/liangqihui/aggbug/2355957.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liangqihui/archive/2012/02/17/2355957.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liangqihui/archive/2012/01/13/2321206.html</id><title type="text">[ZT]C# 代码实现设置用户&amp;quot;NETWORK SERVICE&amp;quot;具有对文件夹的读取权限。</title><summary type="text">设置用户"NETWORK SERVICE"具有对文件夹的读取权限。原帖地址： http://www.cnblogs.com/sjhrun2001/archive/2009/03/18/1415804.htmlCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--&gt;1 System.Security.AccessControl.DirectorySecurity fSec;2 3 string path = "D:\\Te</summary><published>2012-01-13T00:52:00Z</published><updated>2012-01-13T00:52:00Z</updated><author><name>挥辉</name><uri>http://www.cnblogs.com/liangqihui/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liangqihui/archive/2012/01/13/2321206.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liangqihui/archive/2012/01/13/2321206.html"/><content type="html"> &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font face="Verdana"&gt;&lt;font face="Verdana"&gt;设置用户"NETWORK SERVICE"具有对文件夹的读取权限。&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;原帖地址： &lt;font face="Verdana"&gt;&lt;font face="Verdana"&gt;&lt;font face="Verdana"&gt;&lt;a href="http://www.cnblogs.com/sjhrun2001/archive/2009/03/18/1415804.html"&gt;http://www.cnblogs.com/sjhrun2001/archive/2009/03/18/1415804.html&lt;/a&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;!--&lt;br /&gt;&lt;br /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;http://www.CodeHighlighter.com/&lt;br /&gt;&lt;br /&gt;--&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;1&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;System.Security.AccessControl.DirectorySecurity fSec;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;2&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;3&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; path &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;D:\\Test&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;4&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;fSec &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; DirectorySecurity();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;5&lt;/span&gt; &lt;span style="color: rgb(0, 128, 0);"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;设置权限的应用为文件夹本身、子文件夹及文件&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;6&lt;/span&gt; &lt;span style="color: rgb(0, 128, 0);"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;所以需要InheritanceFlags.ContainerInherit 或 InheritanceFlags.ObjectInherit&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;7&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;fSec.AddAccessRule(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; FileSystemAccessRule(&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;NETWORK SERVICE&lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, FileSystemRights.Read, InheritanceFlags.ContainerInherit &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;|&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow));&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;8&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;System.IO.Directory.SetAccessControl(path, fSec);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;9&lt;/span&gt; &lt;/div&gt;&lt;p&gt;&lt;font color="#6466b3"&gt;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;p&gt;&lt;font color="#6466b3"&gt;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;p&gt;&lt;font color="#6466b3"&gt;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;顺便提一下，NETWORK SERVICE是IIS6.0的默认用户，而&lt;span style="color: red;"&gt;ASPNET是IIS5.0的默认用户&lt;/span&gt;。&lt;br /&gt;有一个问题：NETWORK SERVICE在Window2003的电脑管理/用户里面并没有这个用户。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;---------------------------------------&lt;/p&gt;&lt;p&gt;原文：&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/leosky2008/archive/2007/08/08/847405.html"&gt;http://www.cnblogs.com/leosky2008/archive/2007/08/08/847405.html&lt;/a&gt;&lt;/p&gt;&lt;div id="cnblogs_post_body"&gt;在文件操作中,常常会遇到 对所访问的文件夹没有权限 的错误,下面介绍C#中怎么设置文件夹的权限:&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;div style="padding: 4px 5px 4px 4px; border: 1px solid rgb(204, 204, 204); width: 98%; font-size: 13px; word-break: break-all; background-color: rgb(238, 238, 238);"&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; 1&lt;/span&gt;&lt;img id="Codehighlighter1_0_231_Open_Image" onclick="code_collapse_toggle(this);" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif"&gt;&lt;img style="display: none;" id="Codehighlighter1_0_231_Closed_Image" onclick="code_collapse_toggle(this);" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif"&gt;&lt;span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_0_231_Closed_Text"&gt;/**/&lt;/span&gt;&lt;span id="Codehighlighter1_0_231_Open_Text"&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; 2&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; 为创建的临时文件分配权限&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; 3&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; 4&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&amp;lt;param name="pathname"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; 5&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&amp;lt;param name="username"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; 6&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&amp;lt;param name="power"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; 7&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&amp;lt;remarks&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;SKY 2007-8-6&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&amp;lt;/remarks&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; 8&lt;/span&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;void&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; addpathPower(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; pathname, &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; username, &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; power)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt; 9&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img id="Codehighlighter1_321_1544_Open_Image" onclick="code_collapse_toggle(this);" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif"&gt;&lt;img style="display: none;" id="Codehighlighter1_321_1544_Closed_Image" onclick="code_collapse_toggle(this);" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_321_1544_Closed_Text"&gt;&lt;img alt="" src="http://www.cnblogs.com/Images/dot.gif" /&gt;&lt;/span&gt;&lt;span id="Codehighlighter1_321_1544_Open_Text"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;10&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;11&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DirectoryInfo dirinfo &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; DirectoryInfo(pathname);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;12&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;13&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; ((dirinfo.Attributes &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; FileAttributes.ReadOnly) &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;!=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;14&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img id="Codehighlighter1_471_545_Open_Image" onclick="code_collapse_toggle(this);" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"&gt;&lt;img style="display: none;" id="Codehighlighter1_471_545_Closed_Image" onclick="code_collapse_toggle(this);" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_471_545_Closed_Text"&gt;&lt;img alt="" src="http://www.cnblogs.com/Images/dot.gif" /&gt;&lt;/span&gt;&lt;span id="Codehighlighter1_471_545_Open_Text"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;15&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dirinfo.Attributes &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; FileAttributes.Normal;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;16&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;17&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;18&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;取得访问控制列表&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;19&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DirectorySecurity dirsecurity &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; dirinfo.GetAccessControl();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;20&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;21&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;switch&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; (power)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;22&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img id="Codehighlighter1_683_1534_Open_Image" onclick="code_collapse_toggle(this);" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"&gt;&lt;img style="display: none;" id="Codehighlighter1_683_1534_Closed_Image" onclick="code_collapse_toggle(this);" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_683_1534_Closed_Text"&gt;&lt;img alt="" src="http://www.cnblogs.com/Images/dot.gif" /&gt;&lt;/span&gt;&lt;span id="Codehighlighter1_683_1534_Open_Text"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;23&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;case&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;FullControl&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;:&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;24&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dirsecurity.AddAccessRule(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; FileSystemAccessRule(username, FileSystemRights.FullControl, InheritanceFlags.ContainerInherit, PropagationFlags.InheritOnly, AccessControlType.Allow));&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;25&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;break&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;26&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;case&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;ReadOnly&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;:&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;27&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dirsecurity.AddAccessRule(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; FileSystemAccessRule(username, FileSystemRights.Read, AccessControlType.Allow));&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;28&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;break&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;29&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;case&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Write&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;:&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;30&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dirsecurity.AddAccessRule(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; FileSystemAccessRule(username, FileSystemRights.Write, AccessControlType.Allow));&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;31&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;break&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;32&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;case&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Modify&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;:&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;33&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dirsecurity.AddAccessRule(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; FileSystemAccessRule(username, FileSystemRights.Modify, AccessControlType.Allow));&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;34&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;break&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;35&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;36&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;DirectoryInfo是需要实例化的,而且实例化的时候必须指定文件夹路径,Directory则是静态类.&lt;br /&gt;&lt;br /&gt;主程序中调用的写法:&lt;br /&gt;&lt;br /&gt;&lt;div style="padding: 4px 5px 4px 4px; border: 1px solid rgb(204, 204, 204); width: 98%; font-size: 13px; word-break: break-all; background-color: rgb(238, 238, 238);"&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;1&lt;/span&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;private&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;void&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; CreateDirectory()&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;2&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img id="Codehighlighter1_31_96_Open_Image" onclick="code_collapse_toggle(this);" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif"&gt;&lt;img style="display: none;" id="Codehighlighter1_31_96_Closed_Image" onclick="code_collapse_toggle(this);" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif"&gt;&lt;/span&gt;&lt;span style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);" id="Codehighlighter1_31_96_Closed_Text"&gt;&lt;img alt="" src="http://www.cnblogs.com/Images/dot.gif" /&gt;&lt;/span&gt;&lt;span id="Codehighlighter1_31_96_Open_Text"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;3&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&amp;nbsp;&amp;nbsp; &lt;img alt="" src="http://www.cnblogs.com/Images/dot.gif" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;4&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&amp;nbsp;&amp;nbsp; addpathPower(sPath, &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;ASPNET&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;FullControl&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;5&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" /&gt;&amp;nbsp;&amp;nbsp; &lt;img alt="" src="http://www.cnblogs.com/Images/dot.gif" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;6&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&amp;nbsp;&amp;nbsp; 一般来说 &lt;br /&gt;Username 选用 ASPNET &lt;/div&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;if ($ != jQuery) {$ = jQuery.noConflict();}var isLogined = false;var cb_blogId = 27814;var cb_entryId = 847405;var cb_blogApp = "leosky2008";var cb_blogUserGuid = "bc783d0b-63cf-dd11-9e4d-001cf0cd104b";var cb_entryCreatedDate = '2007/8/8 10:10:00';&lt;/script&gt;------------------------------------&lt;br /&gt;&amp;nbsp;这几天由于工作需要，需要用C#开发一个设置文件夹共享，并为共享的文件夹设置共享权限的功能。在开发过程中发现了一些有趣的问题，&lt;br /&gt;就是如果用程序的方式创建一个共享目录，那么就是无法直接用程序的方式设置它的共享权限。更为奇怪的是如果手动去改下下共享权限 （改前和改后的设置都一样），&lt;br /&gt;就可以以程序的方式设置 共享权限了。&lt;br /&gt;&amp;nbsp; 这里我贴出创建共享目录的代码&lt;br /&gt;/// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 共享目录&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="folderPath"&amp;gt;目录地址&amp;lt;/param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="shareName"&amp;gt;共享名称&amp;lt;/param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="description"&amp;gt;描述&amp;lt;/param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="tempShareName"&amp;gt;临时共享目录&amp;lt;/param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="returnMsg"&amp;gt;返回消息&amp;lt;/param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt; &lt;br /&gt; public static bool ShareFolder(string folderPath, string shareName, string description, out string returnMsg)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bool bRet = false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; returnMsg = "";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (Directory.Exists(folderPath))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ManagementBaseObject oSecurityDescriptor = GetSecurityDescriptorFromBinary(user);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ManagementClass oManagementClass = new ManagementClass("Win32_Share");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ManagementBaseObject oInParams = oManagementClass.GetMethodParameters("Create");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ManagementBaseObject oOutParams = null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oInParams["Description"] = description;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oInParams["Name"] = shareName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oInParams["Path"] = folderPath;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oInParams["Type"] = DISK_DRIVE;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oInParams["Access"] = null; //默认的共享权限是Everyone&lt;br /&gt;/*&lt;br /&gt;如果oInParams["Access"] 不设置或者设置为null，你就会奇怪的发现，当你先要用程序再去设置共享权限时就不行了（xp和2003下，win7,win2008缺可以）&lt;br /&gt;*/ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oOutParams = oManagementClass.InvokeMethod("Create", oInParams, null);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((uint)(oOutParams.Properties["ReturnValue"].Value) != 0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; returnMsg = string.Format("无法共享目录[{0}]！", folderPath);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bRet = true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; returnMsg = string.Format("不存在目录[{0}]！", folderPath);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception ex)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; returnMsg = ex.Message;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return bRet;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt; 设置权限的普通方法：&lt;br /&gt;/// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 设置共享目录的共享权限&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="folderPath"&amp;gt;共享目录名&amp;lt;/param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="user"&amp;gt;共享权限用户&amp;lt;/param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="returnMsg"&amp;gt;返回消息&amp;lt;/param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static bool SetPermission(string shareName, string user, out string returnMsg)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bool bRet = false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; returnMsg = "";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //判断用户是否存在&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!IsUserExists(user))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; returnMsg = string.Format("用于[{0}]不存在", user);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return bRet;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Step 1 - Getting the user Account Object&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string sShareName =shareName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ManagementObject oShareSecuritySetting=&amp;nbsp; null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ManagementObjectSearcher oSearcher = new ManagementObjectSearcher("Select * from Win32_LogicalShareSecuritySetting where Name = '" + sharedName + "'");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //ManagementObjectSearcher oSearcher = new ManagementObjectSearcher("Select * from Win32_LogicalShareSecuritySetting");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ManagementObjectCollection oResultOfSearch = oSearcher.Get();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (oResultOfSearch.Count &amp;gt; 0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //The search might return a number of objects with same shared name. I assume there is just going to be one&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (ManagementObject sharedFolder in oResultOfSearch)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; oShareSecuritySetting= sharedFolder;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (oShareSecuritySetting!= null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ManagementBaseObject oSecurityDescriptorObject = oShareSecuritySetting.InvokeMethod("GetSecurityDescriptor", null, null);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (oSecurityDescriptorObject != null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((uint)(oSecurityDescriptorObject.Properties["ReturnValue"].Value) == 0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ManagementBaseObject oSecurityDescriptor = oSecurityDescriptorObject.Properties["Descriptor"].Value as ManagementBaseObject;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Step 2 --&amp;nbsp; Access Control List from the security descriptor&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int iExistingAcessControlEntriesCount = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ManagementBaseObject[] oAccessControlList = oSecurityDescriptor.Properties["DACL"].Value as ManagementBaseObject[];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (oAccessControlList != null)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Otherwise, resize the list to allow for all new users.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iExistingAcessControlEntriesCount = oAccessControlList.Length;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Array.Resize(ref oAccessControlList, oAccessControlList.Length + 1);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // If there aren't any entries in access control list or the list is empty - create one&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oAccessControlList = new ManagementBaseObject[1];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Step 3 - Getting the user Account Object&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string sUserDomain = Environment.UserDomainName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ManagementObject oUserAccountObject = GetUserAccountObject(sUserDomain, user);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ManagementObject oSecurityIdentfierObject = new ManagementObject(string.Format("Win32_SID.SID='{0}'", (string)oUserAccountObject.Properties["SID"].Value));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oSecurityIdentfierObject.Get();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Step 4 - Create Trustee Object&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ManagementObject oTrusteeObject = CreateTrustee(sUserDomain, user, oSecurityIdentfierObject);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Step 5 - Create Access Control Entry&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ManagementObject oAccessControlEntry = CreateAccessControlEntry(oTrusteeObject, false);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Step 6 - Add Access Control Entry to the Access Control List&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oAccessControlList[iExistingAcessControlEntriesCount] = oAccessControlEntry;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Step 7 - Assign access Control list to security desciptor&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oSecurityDescriptor.Properties["DACL"].Value = oAccessControlList;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Step 8 - Assign access Control list to security desciptor&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ManagementBaseObject oParameterForSetSecurityDescriptor = oSharedFolder.GetMethodParameters("SetSecurityDescriptor");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oParameterForSetSecurityDescriptor["Descriptor"] = oSecurityDescriptor;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oShareSecuritySetting.InvokeMethod("SetSecurityDescriptor", oParameterForSetSecurityDescriptor, null);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bRet = true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; returnMsg = string.Format("共享目录[{0}]的安全描述符(SecurityDescriptorObject)的返回值错误！", sShareName);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; returnMsg = string.Format("无法获取共享目录[{0}]的安全描述符(SecurityDescriptorObject)", sShareName);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; returnMsg = string.Format("无法获取共享目录[{0}]的共享安全设置！", sShareName);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return bRet;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 获取账户对象&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="domain"&amp;gt;用户的域名&amp;lt;/param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="alias"&amp;gt;用户名称别名&amp;lt;/param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static ManagementObject GetUserAccountObject(string domain, string alias)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ManagementObject oUserAccountObject = null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ManagementObjectSearcher oSearcher = new ManagementObjectSearcher(string.Format("select * from Win32_Account where Name = '{0}' and Domain='{1}'", alias, domain));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ManagementObjectCollection oResultOfSearch = oSearcher.Get();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (oResultOfSearch.Count &amp;gt; 0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (ManagementObject userAccount in oResultOfSearch)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oUserAccountObject = userAccount;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return oUserAccountObject;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 创建指定用户的信任项&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="domain"&amp;gt;域名&amp;lt;/param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="userName"&amp;gt;用户名&amp;lt;/param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="securityIdentifierOfUser"&amp;gt;用户的权限标识&amp;lt;/param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static ManagementObject CreateTrustee(string domain, string userName, ManagementObject securityIdentifierOfUser)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ManagementObject oTrusteeObject = new ManagementClass("Win32_Trustee").CreateInstance();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oTrusteeObject.Properties["Domain"].Value = domain;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oTrusteeObject.Properties["Name"].Value = userName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oTrusteeObject.Properties["SID"].Value = securityIdentifierOfUser.Properties["BinaryRepresentation"].Value;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oTrusteeObject.Properties["SidLength"].Value = securityIdentifierOfUser.Properties["SidLength"].Value;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oTrusteeObject.Properties["SIDString"].Value = securityIdentifierOfUser.Properties["SID"].Value;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return oTrusteeObject;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 创建指定用户的访问控制项（Access Control Entry）对象&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="trustee"&amp;gt;用户的信任项对象&amp;lt;/param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="deny"&amp;gt;用户权限是拒绝还是允许&amp;lt;/param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static ManagementObject CreateAccessControlEntry(ManagementObject trustee, bool deny)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ManagementObject oAceObject = new ManagementClass("Win32_ACE").CreateInstance();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oAceObject.Properties["AccessMask"].Value = 0x1U | 0x2U | 0x4U | 0x8U | 0x10U | 0x20U | 0x40U | 0x80U | 0x100U | 0x10000U | 0x20000U | 0x40000U | 0x80000U | 0x100000U; // all permissions&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oAceObject.Properties["AceFlags"].Value = 0x0U; // no flags&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oAceObject.Properties["AceType"].Value = deny ? 1U : 0U; // 0 = allow, 1 = deny&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oAceObject.Properties["Trustee"].Value = trustee;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return oAceObject;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 检查用户是否存在&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="user"&amp;gt;&amp;lt;/param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="returnMsg"&amp;gt;&amp;lt;/param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static bool IsUserExists(string userName)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bool bRet = false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DirectoryEntry oLocalMachine = null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DirectoryEntry oNewUser = null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oLocalMachine = new DirectoryEntry("WinNT://" + Environment.MachineName);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oNewUser = oLocalMachine.Children.Find(userName, "user");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bRet = true;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bRet = false;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return bRet;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;运行代码上面这段代码时你会发现&lt;br /&gt;ManagementObject oShareSecuritySetting=&amp;nbsp; null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ManagementObjectSearcher oSearcher = new ManagementObjectSearcher("Select * from Win32_LogicalShareSecuritySetting where Name = '" + sharedName + "'");&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ManagementObjectCollection oResultOfSearch = oSearcher.Get();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (oResultOfSearch.Count &amp;gt; 0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //The search might return a number of objects with same shared name. I assume there is just going to be one&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (ManagementObject sharedFolder in oResultOfSearch)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; oShareSecuritySetting= sharedFolder;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;这句代码片段是无法找到有效的oShareSecuritySetting。但是实际情况是文件夹是共享的而且有一个默认的Everyone的共享权限。这是为啥我找了很久也没答案。&lt;br /&gt; 鉴于无法获取oShareSecuritySetting这个&amp;#8220;Win32_LogicalShareSecuritySetting&amp;#8221;对象，下一步的权限设置也没法做了。&lt;br /&gt;其实获取这个对象的最终目的是为了获取下面这个对象 &lt;br /&gt;ManagementBaseObject oSecurityDescriptor = oSecurityDescriptorObject.Properties["Descriptor"].Value as ManagementBaseObject;&lt;br /&gt; 这就头疼了，这些功能代码的目的就是为了使用程序去设置共享及共享权限，如果需要手动去设置下权限那不是有点隔靴搔痒了。&lt;br /&gt;最后实在没办了，我只能想了个笨办法。既然手动创建的共享目录能够获取oSecurityDescriptor 这个对象，那能不能我把这个对象保存下来能，应为只要有了&lt;br /&gt;oSecurityDescriptor这个对象，就可以在这个对象了设置我们自己想要的用户权限了，设置方法上面的代码中有例子的。&lt;br /&gt;最后想出来办法是用.net的序列化方法去序列化一个实现获取到的oSecurityDescriptor对象，把这个对象保存在一个文件里，下次在进行反序列化获取这个对象。&lt;br /&gt;需要注意一点的是。无法获取oShareSecuritySetting只会发生在第一次创建共享目录的时候（注意：使用代码创建的），如果第一次为这个共享目录设置了共享权限，那么下次次再设置权限就没有障碍了。烦啊。。。&lt;br /&gt;好了，还是说序列化吧，如下代码：&lt;br /&gt;private static void ObjectSerialize(object serObj)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (FileStream oFileStream = new FileStream(@"C:\LogicalShareSecuritySetting.dat", FileMode.Create))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BinaryFormatter oFormatter = new BinaryFormatter();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oFormatter.Serialize(oFileStream, serObj);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;ObjectSerialize(oSecurityDescriptor);&lt;br /&gt;这样就把这个对象永久保存在C:\LogicalShareSecuritySetting.dat这个文件里了，为了部署方便，我们可以把这个文件作为一个嵌入的资源嵌入在我们的程序中，下次我们就可以这样反序列化这个对象了：&lt;br /&gt;private const string LOGICAL_SHARESECURITY_SETTING=&amp;#8220;Namespace.LogicalShareSecuritySetting.dat&amp;#8221;; &lt;br /&gt;ManagementBaseObject oSecurityDescriptor= null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Assembly oAsm = Assembly.GetExecutingAssembly();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (Stream oStream = oAsm.GetManifestResourceStream(LOGICAL_SHARESECURITY_SETTING))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BinaryFormatter oFormatter = new BinaryFormatter();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;oSecurityDescriptor= oFormatter.Deserialize(oStream) as ManagementBaseObject;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { }&lt;br /&gt; 一旦反序列化成功这个oSecurityDescriptor，我们就可以为这个对象赋值一个我们想要的用户权限啦，如下：&lt;br /&gt;if (oSecurityDescriptor != null)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ManagementBaseObject[] oAccessControlList = null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; oAccessControlList = new ManagementBaseObject[1];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Step 3 - Getting the user Account Object&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string sUserDomain = Environment.UserDomainName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ManagementObject oUserAccountObject = GetUserAccountObject(sUserDomain, user);//这个user就是本地计算机的用户名，如Guest等。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ManagementObject oSecurityIdentfierObject = new ManagementObject(string.Format("Win32_SID.SID='{0}'", (string)oUserAccountObject.Properties["SID"].Value));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; oSecurityIdentfierObject.Get();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Step 4 - Create Trustee Object&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ManagementObject oTrusteeObject = CreateTrustee(sUserDomain, user, oSecurityIdentfierObject);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Step 5 - Create Access Control Entry&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ManagementObject oAccessControlEntry = CreateAccessControlEntry(oTrusteeObject, false);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Step 6 - Add Access Control Entry to the Access Control List&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; oAccessControlList[0] = oAccessControlEntry;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Step 7 - Assign access Control list to security desciptor&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;oSecurityDescriptor.Properties["DACL"].Value = oAccessControlList;&lt;br /&gt;}&lt;br /&gt; 一旦设置成功了，那么我们返回第一段设置共享目录代码的地方，记得不记得这段代码&lt;br /&gt; oInParams["Access"] = null; //默认的共享权限是Everyone&lt;br /&gt;我们就可以吧获取的 &lt;br /&gt;oSecurityDescriptor设置给 oInParams["Access"] = oSecurityDescriptor了。&lt;br /&gt;OK，大家有兴趣试试。如果有什么更好的方法，请一定告诉我哦。我期待有更好的方式解决这个问题。  &lt;img src="http://www.cnblogs.com/liangqihui/aggbug/2321206.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liangqihui/archive/2012/01/13/2321206.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liangqihui/archive/2011/12/06/2277731.html</id><title type="text">[ZT]用sqlserver的sqlcmd、osql、isql的备份与还原</title><summary type="text">用sqlserver的sqlcmd、osql、isql的备份与还原--sqlcmd ，sql2005新加工具1、备份"C:/Program Files/Microsoft SQL Server/90/Tools/Binn/SQLCMD.EXE" -S ./sqlexpress -U sa -P 000000 -d master -Q"BACKUP DATABASE test to disk='c:/aa/aaa.bak'"已为数据库 'test'，文件 'test' (位于文件 2 上)处理了 176 页。</summary><published>2011-12-06T03:25:00Z</published><updated>2011-12-06T03:25:00Z</updated><author><name>挥辉</name><uri>http://www.cnblogs.com/liangqihui/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liangqihui/archive/2011/12/06/2277731.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liangqihui/archive/2011/12/06/2277731.html"/><content type="html"> &lt;p&gt;用sqlserver的sqlcmd、osql、isql的备份与还原&lt;/p&gt;&lt;p&gt;&lt;br /&gt;--sqlcmd ，sql2005新加工具&lt;br /&gt;1、备份&lt;br /&gt;"C:/Program Files/Microsoft SQL&amp;nbsp; Server/90/Tools/Binn/SQLCMD.EXE" -S ./sqlexpress -U sa -P 000000 -d&amp;nbsp; master -Q"BACKUP DATABASE test to disk='c:/aa/aaa.bak'"&lt;/p&gt;&lt;p&gt;已为数据库 'test'，文件 'test' (位于文件 2 上)处理了 176 页。&lt;br /&gt;已为数据库 'test'，文件 'test_log' (位于文件 2 上)处理了 1 页。&lt;br /&gt;BACKUP DATABASE 成功处理了 177 页，花费 1.207 秒(1.201 MB/秒)。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;2、还原&lt;br /&gt;"C:/Program Files/Microsoft SQL&amp;nbsp; Server/90/Tools/Binn/SQLCMD.EXE" -S ./sqlexpress -U sa -P 000000 -d&amp;nbsp; master -Q"RESTORE DATABASE test from disk='c:/aa/aaa.bak'"&lt;/p&gt;&lt;p&gt;3、帮助&lt;br /&gt;C:/Documents and Settings/xuysh&amp;gt;"C:/Program&amp;nbsp; Files/Microsoft SQL Server/90/Tools/&lt;br /&gt;Binn/SQLCMD.EXE" -?&lt;br /&gt;Microsoft (R) SQL Server 命令行工具&lt;br /&gt;版本 9.00.1399.06 NT INTEL X86&lt;br /&gt;版权所有 (c)&amp;nbsp; Microsoft Corporation。保留所有权利。&lt;/p&gt;&lt;p&gt;用法: Sqlcmd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-U 登录 ID]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-P 密码]&lt;br /&gt;&amp;nbsp; [-S 服务器]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-H 主机名]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-E 可信连接]&lt;br /&gt;&amp;nbsp; [-d 使用数据库名称] [-l 登录超时值]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t 查询超时值]&lt;br /&gt;&amp;nbsp; [-h 标题]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-s 列分隔符]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-w 屏幕宽度]&lt;br /&gt;&amp;nbsp; [-a 数据包大小]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-e 回显输入]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-I 允许带引号的标识符]&lt;br /&gt;&amp;nbsp; [-c 命令结束]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-L[c] 列出服务器[清除输出]]&lt;br /&gt;&amp;nbsp; [-q "命令行查询"]&amp;nbsp;&amp;nbsp; [-Q "命令行查询" 并退出]&lt;br /&gt;&amp;nbsp; [-m 错误级别]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-V 严重级别]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-W 删除尾随空格]&lt;br /&gt;&amp;nbsp; [-u unicode 输出]&amp;nbsp;&amp;nbsp;&amp;nbsp; [-r[0|1] 发送到 stderr 的消息]&lt;br /&gt;&amp;nbsp; [-i 输入文件]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-o 输出文件]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-z 新密码]&lt;br /&gt;&amp;nbsp; [-f &amp;lt;代码页&amp;gt; | i:&amp;lt;代码页&amp;gt;[,o:&amp;lt;代码页&amp;gt;]] [-Z 新建密码并退出]&lt;br /&gt;&amp;nbsp; [-k[1|2] 删除[替换]控制字符]&lt;br /&gt;&amp;nbsp; [-y 可变长度类型显示宽度]&lt;br /&gt;&amp;nbsp; [-Y 固定长度类型显示宽度]&lt;br /&gt;&amp;nbsp; [-p[1] 打印统计信息[冒号格式]]&lt;br /&gt;&amp;nbsp; [-R 使用客户端区域设置]&lt;br /&gt;&amp;nbsp; [-b 出错时中止批处理]&lt;br /&gt;&amp;nbsp; [-v 变量 = "值"...]&amp;nbsp; [-A 专用管理连接]&lt;br /&gt;&amp;nbsp; [-X[1] 禁用命令、启动脚本、环境变量[并退出]]&lt;br /&gt;&amp;nbsp; [-x 禁用变量情况]&lt;br /&gt;&amp;nbsp; [-? 显示语法摘要]&lt;/p&gt;&lt;p&gt;--Osql sql2000和sql2005都有&lt;br /&gt;--1、备份&lt;br /&gt;"C:/Program Files/Microsoft SQL Server/90/Tools/Binn/Osql.EXE" -S ./sqlexpress -U sa -P 000000 -d&amp;nbsp; master -Q"BACKUP DATABASE test to disk='c:/aa/aaa.bak'"&lt;/p&gt;&lt;p&gt;已为数据库 'test'，文件 'test' (位于文件 3 上)处理了 176 页。&lt;br /&gt;已为数据库 'test'，文件 'test_log' (位于文件 3 上)处理了 1 页。&lt;br /&gt;BACKUP DATABASE 成功处理了 177 页，花费 0.531 秒(2.730 MB/秒)。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;2、还原&lt;br /&gt;"C:/Program Files/Microsoft SQL&amp;nbsp; Server/90/Tools/Binn/Osql.EXE" -S ./sqlexpress -U sa -P 000000 -d master -Q"RESTORE DATABASE test from disk='c:/aa/aaa.bak'"&lt;/p&gt;&lt;p&gt;已为数据库 'test'，文件 'test' (位于文件 1 上)处理了 176 页。&lt;br /&gt;已为数据库 'test'，文件 'test_log' (位于文件 1 上)处理了 2 页。&lt;br /&gt;RESTORE DATABASE 成功处理了 178 页，花费 0.200 秒(7.255 MB/秒)。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;3、帮助&lt;br /&gt;C:/Documents and Settings/xuysh&amp;gt;"C:/Program&amp;nbsp; Files/Microsoft SQL Server/90/Tools/&lt;br /&gt;Binn/Osql.EXE" /?&lt;br /&gt;Microsoft&amp;nbsp; (R) SQL Server 命令行工具&lt;br /&gt;版本 9.00.1399.06 NT INTEL X86&lt;br /&gt;版权所有 (c)&amp;nbsp; Microsoft Corporation。保留所有权利。&lt;/p&gt;&lt;p&gt;注意: osql 并不支持 SQL Server 2005的所有功能。&lt;br /&gt;请使用 sqlcmd。有关详细信息，请参阅 SQL&amp;nbsp; Server 联机丛书。&lt;/p&gt;&lt;p&gt;用法: osql&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-U 登录 ID]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-P 密码]&lt;br /&gt;&amp;nbsp; [-S 服务器]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-H 主机名]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-E 可信连接]&lt;br /&gt;&amp;nbsp; [-d 使用数据库名称]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-l 登录超时值]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t 查询超时值]&lt;br /&gt;&amp;nbsp; [-h 标题]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-s 列分隔符]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-w 列宽]&lt;br /&gt;&amp;nbsp; [-a 数据包大小]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-e 回显输入]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-I 允许带引号的标识符]&lt;br /&gt;&amp;nbsp; [-L 列出服务器]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-c 命令结束]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-D ODBC DSN 名称]&lt;br /&gt;&amp;nbsp; [-q&amp;nbsp; "命令行查询"]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-Q "命令行查询" 并退出]&lt;br /&gt;&amp;nbsp; [-n 删除编号方式]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-m 错误级别]&lt;br /&gt;&amp;nbsp; [-r 发送到 stderr 的消息]&amp;nbsp; [-V 严重级别]&lt;br /&gt;&amp;nbsp; [-i 输入文件]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-o 输出文件]&lt;br /&gt;&amp;nbsp; [-p 打印统计信息]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-b 出错时中止批处理]&lt;br /&gt;&amp;nbsp; [-X[1] 禁用命令，[退出的同时显示警告]]&lt;br /&gt;&amp;nbsp; [-O 使用旧 ISQL 行为禁用下列项]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;EOF&amp;gt; 批处理&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 自动调整控制台宽度&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 宽消息&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 默认错误级别为 -1 和 1&lt;br /&gt;&amp;nbsp; [-? 显示语法摘要]&lt;/p&gt;&lt;p&gt;&lt;br /&gt;--Isql ，sql2000工具，2005中没有&lt;br /&gt;--1、备份&lt;br /&gt;"C:/Program&amp;nbsp; Files/Microsoft SQL Server/80/Tools/Binn/Isql.EXE" -S ./sqlexpress -U sa -P 000000 -d master -Q"BACKUP DATABASE test to disk='c:/aa/aaa.bak'"&lt;/p&gt;&lt;p&gt;已为数据库 'test'，文件 'test' (位于文件 3 上)处理了 176 页。&lt;br /&gt;已为数据库 'test'，文件 'test_log' (位于文件 3 上)处理了 1 页。&lt;br /&gt;BACKUP DATABASE 成功处理了 177 页，花费 0.531 秒(2.730 MB/秒)。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;2、还原&lt;br /&gt;"C:/Program Files/Microsoft SQL&amp;nbsp; Server/80/Tools/Binn/Isql.EXE" -S ./sqlexpress -U sa -P 000000 -d master -Q"RESTORE DATABASE test from disk='c:/aa/aaa.bak'"&lt;/p&gt;&lt;p&gt;已为数据库 'test'，文件 'test' (位于文件 1 上)处理了 176 页。&lt;br /&gt;已为数据库 'test'，文件 'test_log' (位于文件 1 上)处理了 2 页。&lt;br /&gt;RESTORE DATABASE 成功处理了 178 页，花费 0.200 秒(7.255 MB/秒)。&lt;/p&gt;&lt;p&gt;3、帮助&lt;br /&gt;Microsoft Windows XP [版本 5.1.2600]&lt;br /&gt;(C) 版权所有 1985-2001&amp;nbsp; Microsoft Corp.&lt;/p&gt;&lt;p&gt;C:/Documents and Settings/xuysh&amp;gt;"C:/Program Files/Microsoft SQL&amp;nbsp; Server/80/Tools/&lt;br /&gt;Binn/Isql.EXE"/?&lt;br /&gt;isql: unknown option ?&lt;br /&gt;usage: isql&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-U login id]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-P password]&lt;br /&gt;&amp;nbsp; [-S&amp;nbsp; server]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-H hostname]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-E trusted connection]&lt;br /&gt;&amp;nbsp;&amp;nbsp; [-d use database name] [-l login timeout]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-t query timeout]&lt;br /&gt;&amp;nbsp;&amp;nbsp; [-h headers]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-s colseparator]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-w columnwidth]&lt;br /&gt;&amp;nbsp; [-a&amp;nbsp; packetsize]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-e echo input]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-x max text size]&lt;br /&gt;&amp;nbsp; [-L&amp;nbsp; list servers]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-c cmdend]&lt;br /&gt;&amp;nbsp; [-q "cmdline query"]&amp;nbsp;&amp;nbsp; [-Q "cmdline&amp;nbsp; query" and exit]&lt;br /&gt;&amp;nbsp; [-n remove numbering]&amp;nbsp; [-m errorlevel]&lt;br /&gt;&amp;nbsp; [-r&amp;nbsp; msgs to stderr]&lt;br /&gt;&amp;nbsp; [-i inputfile]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [-o outputfile]&lt;br /&gt;&amp;nbsp; [-p&amp;nbsp; print statistics]&amp;nbsp; [-b On error batch abort]&lt;br /&gt;&amp;nbsp; [-O use Old ISQL&amp;nbsp; behavior disables the following]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;EOF&amp;gt; batch processing&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Auto console width scaling&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Wide messages&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; default&amp;nbsp; errorlevel is -1 vs 1&lt;br /&gt;&amp;nbsp; [-? show syntax summary (this screen)]&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liangqihui/aggbug/2277731.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liangqihui/archive/2011/12/06/2277731.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liangqihui/archive/2011/05/22/2053855.html</id><title type="text">运用PMI主义</title><summary type="text">你是专业的项目经理，管理是你的核心职能（技术的实现细节是你需要注意的内容，但大多只需要深入到是可行性论证和成本控制水平，而不是要你在技术上舍本逐末，记住技术上再多的亮点永远也不能掩盖你在项目管理中体现出的无能）必须以专业的方式做项目，即遵循PMBOK的要求强调事业环境印务和组织过程资产强调历史信息，强调经验教训总结，强调记录问题重在预防，而非解决（虽然解决也很重要，但是它是最基本的，但是PMI体系在设计之初就强调需要根据经验和专业的科学手段尽可能的规避不必要的任何风险）必须有明确的目标，必须有正是的计划，才可以行动利害关系者很重要，尽早识别全部的厉害关系者（项目干系人）并让其参与项目经理鼻息被</summary><published>2011-05-22T13:56:00Z</published><updated>2011-05-22T13:56:00Z</updated><author><name>挥辉</name><uri>http://www.cnblogs.com/liangqihui/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liangqihui/archive/2011/05/22/2053855.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liangqihui/archive/2011/05/22/2053855.html"/><content type="html">&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;你是专业的项目经理，管理是你的核心职能（技术的实现细节是你需要注意的内容，但大多只需要深入到是可行性论证和成本控制水平，而不是要你在技术上舍本逐末，记住技术上再多的亮点永远也不能掩盖你在项目管理中体现出的无能）&lt;/li&gt;&lt;li&gt;必须以专业的方式做项目，即遵循PMBOK的要求&lt;/li&gt;&lt;li&gt;强调事业环境印务和组织过程资产&lt;/li&gt;&lt;li&gt;强调历史信息，强调经验教训总结，强调记录&lt;/li&gt;&lt;li&gt;问题重在预防，而非解决（虽然解决也很重要，但是它是最基本的，但是PMI体系在设计之初就强调需要根据经验和专业的科学手段尽可能的规避不必要的任何风险）&lt;/li&gt;&lt;li&gt;必须有明确的目标，必须有正是的计划，才可以行动&lt;/li&gt;&lt;li&gt;利害关系者很重要，尽早识别全部的厉害关系者（项目干系人）并让其参与&lt;/li&gt;&lt;li&gt;项目经理鼻息被任命，PM是管理工作的核心责任点&lt;/li&gt;&lt;li&gt;项目是系统工程，项目经理是整合者，多重约束需要牢记在心&lt;/li&gt;&lt;li&gt;项目管理以结果为导向，项目成功时项目经理的最终责任&lt;/li&gt;&lt;li&gt;变更影响项目成功，项目经理应该影响变更发生，管理变更&lt;/li&gt;&lt;li&gt;项目经理的主要责任是整合项目，整合通过沟通实现，项目经理要花费75%-90%的时间用于沟通&lt;/li&gt;&lt;li&gt;项目经理应该拒绝体统不重要的信息要求&lt;/li&gt;&lt;li&gt;必须详细秒速工作，责任必须明确&lt;/li&gt;&lt;li&gt;任何情况下，质量都要达到客户满意&lt;/li&gt;&lt;li&gt;削减费用的前提是削减项目范围，而不是牺牲质量&lt;/li&gt;&lt;li&gt;项目经理必须遵守公司规定，职业道德，法律&lt;/li&gt;&lt;li&gt;项目经理必须主动，不等不靠；无论环境如何，先尽自己的努力&lt;/li&gt;&lt;li&gt;一切决策必须以事实为依据，以程序为准绳，正确的程序优先于正确的结果&lt;/li&gt;&lt;li&gt;防止范围潜变，杜绝质量镀金，项目必须收尾&lt;/li&gt;&lt;li&gt;公正，公平，公开，勇敢，诚实地面对现实&lt;/li&gt;&lt;li&gt;处理各方关系时，都要本着双赢理念&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;《如何准备PMP考试》 ---机械工业出版社&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liangqihui/aggbug/2053855.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liangqihui/archive/2011/05/22/2053855.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liangqihui/archive/2011/05/20/2052060.html</id><title type="text">Kerberos 委派故障诊断</title><summary type="text">Kerberos 委派故障诊断发布日期： 2004年11月03日下载Kerberos_Delegation.doc1524 KBMicrosoft Word 文件本白皮书说明了如何对在 Kerberos 身份验证方案中可能出现的委派问题进行故障诊断。本白皮书总结了必需的基础结构，并描述了 Windows® 身份验证方案的例子。其中心内容是围绕四个故障诊断清单来组织的：Active Directory® 目录服务、客户端应用程序、中间层和后端各一个清单。附录中详细介绍了诊断工具，并给出了如何在典型的 IIS 到 SQL 委派方案中解决问题的例子。 本页内容简介基础结构的要求W</summary><published>2011-05-20T07:38:00Z</published><updated>2011-05-20T07:38:00Z</updated><author><name>挥辉</name><uri>http://www.cnblogs.com/liangqihui/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liangqihui/archive/2011/05/20/2052060.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liangqihui/archive/2011/05/20/2052060.html"/><content type="html"> &lt;p&gt;&lt;strong&gt;Kerberos 委派故障诊断&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="date"&gt;发布日期： 2004年11月03日&lt;/div&gt;&lt;br /&gt;&lt;div style="height: 18px;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;table style="margin-left: 15px;" border="0" cellspacing="0" cellpadding="0" width="165" align="right"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;table dir="ltr" class="containerHeader" border="0" cellspacing="0" cellpadding="0" width="165"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td align="left"&gt;&lt;img title="" border="0" alt="*" src="http://img.microsoft.com/library/gallery/templates/MNP2.Common/images/l_corner.gif" width="2" height="3" /&gt;&lt;/td&gt;&lt;br /&gt;&lt;td align="right"&gt;&lt;img title="" border="0" alt="*" src="http://img.microsoft.com/library/gallery/templates/MNP2.Common/images/r_corner.gif" width="2" height="3" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div style="padding: 8px 7px 15px; width: 165px;" class="sidebarContent"&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;下载&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="file" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td width="12"&gt;&lt;a href="http://download.microsoft.com/download/1/e/e/1ee86ce4-8234-4aa1-94f4-a37039837729/Troubleshooting_Kerberos_Delegation.DOC"&gt;&lt;img border="0" alt="下载" vspace="2" src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/icon_Word.gif" width="10" height="10" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;&lt;td class="fileDetails"&gt;&lt;a href="http://download.microsoft.com/download/1/e/e/1ee86ce4-8234-4aa1-94f4-a37039837729/Troubleshooting_Kerberos_Delegation.DOC"&gt;Kerberos_Delegation.doc&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="fnSpacer"&gt;&lt;/div&gt;1524 KB&lt;br /&gt;Microsoft Word &lt;br /&gt;文件&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;table dir="ltr" class="containerFooter" border="0" cellspacing="0" cellpadding="0" width="165"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td align="left"&gt;&lt;img title="" border="0" alt="*" src="http://img.microsoft.com/library/gallery/templates/MNP2.Common/images/l_b.corner.gif" width="2" height="3" /&gt;&lt;/td&gt;&lt;br /&gt;&lt;td align="right"&gt;&lt;img title="" border="0" alt="*" src="http://img.microsoft.com/library/gallery/templates/MNP2.Common/images/r_b.corner.gif" width="2" height="3" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;本白皮书说明了如何对在 Kerberos 身份验证方案中可能出现的委派问题进行故障诊断。本白皮书总结了必需的基础结构，并描述了 Windows&amp;#174; &lt;br /&gt;身份验证方案的例子。其中心内容是围绕四个故障诊断清单来组织的：Active Directory&amp;#174; &lt;br /&gt;目录服务、客户端应用程序、中间层和后端各一个清单。附录中详细介绍了诊断工具，并给出了如何在典型的 IIS 到 SQL 委派方案中解决问题的例子。 &lt;/p&gt;&lt;br /&gt;&lt;h5 style="padding-top: 2px;"&gt;本页内容&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table style="margin-top: 7px; margin-bottom: 12px;" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#EDB"&gt;&lt;img border="0" hspace="4" alt="简介" vspace="2" src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" width="7" height="9" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#EDB"&gt;简介&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#ETB"&gt;&lt;img border="0" hspace="4" alt="基础结构的要求" vspace="2" src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" width="7" height="9" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#ETB"&gt;基础结构的要求&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#EVDAC"&gt;&lt;img border="0" hspace="4" alt="Windows 身份验证方案" vspace="2" src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" width="7" height="9" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#EVDAC"&gt;Windows 身份验证方案&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#E3HAC"&gt;&lt;img border="0" hspace="4" alt="配置 Kerberos 委派" vspace="2" src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" width="7" height="9" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#E3HAC"&gt;配置 Kerberos 委派&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#EYIAC"&gt;&lt;img border="0" hspace="4" alt="诊断委派问题：四个清单" vspace="2" src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" width="7" height="9" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#EYIAC"&gt;诊断委派问题：四个清单&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#EYUAG"&gt;&lt;img border="0" hspace="4" alt="总结" vspace="2" src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" width="7" height="9" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#EYUAG"&gt;总结&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#E3UAG"&gt;&lt;img border="0" hspace="4" alt="附录 A：诊断工具" vspace="2" src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" width="7" height="9" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#E3UAG"&gt;附录 A：诊断工具&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#ES2BG"&gt;&lt;img border="0" hspace="4" alt="附录 B：常见方案的配置示例" vspace="2" src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" width="7" height="9" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#ES2BG"&gt;附录 B：常见方案的配置示例&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#EUIBI"&gt;&lt;img border="0" hspace="4" alt="附录 C：网络监视器捕获到的网络记录的示例 " vspace="2" src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" width="7" height="9" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#EUIBI"&gt;附录 C：网络监视器捕获到的网络记录的示例 &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#EFJBI"&gt;&lt;img border="0" hspace="4" alt="附录 D：相关信息" vspace="2" src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif" width="7" height="9" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;br /&gt;&lt;td class="onThisPage"&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#EFJBI"&gt;附录 D：相关信息&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;a name="EDB"&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;简介&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;本白皮书讨论了对委派问题进行故障诊断的各种方法。由于通常 Kerberos 委派与 Internet 信息服务 (IIS) 和 SQL Server &lt;br /&gt;一起使用，所以本白皮书在&amp;#8220;附录 B&amp;#8221;中详细介绍了 IIS/SQL 委派方案的例子。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;本白皮书假定您已经了解 Kerberos 身份验证的工作原理。有关 Kerberos 协议和操作的更多信息，请参见：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;Microsoft Windows Server 2003 技术参考，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkId=21711"&gt;http://go.microsoft.com/fwlink/?LinkId=21711&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;Microsoft 知识库中的&amp;#8220;Windows 2000 中的 Kerberos 用户身份验证协议概述&amp;#8221;，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkId=24922"&gt;http://go.microsoft.com/fwlink/?LinkId=24922&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#top"&gt;&lt;img border="0" alt="返回页首" src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" width="7" height="9" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="ETB"&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;基础结构的要求&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Kerberos 身份验证的问题常常涉及到 Kerberos SSP 所依赖的技术，或者源于 Kerberos &lt;br /&gt;设置的配置中那些很容易纠正的疏忽。本节将回顾依存关系，并总结每种依存关系怎样与 Kerberos 身份验证的故障诊断相关。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;操作系统&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Kerberos 身份验证依赖于在 Microsoft&amp;#174; Windows Server&amp;#8482; 2003 操作系统、Microsoft Windows&amp;#174; XP &lt;br /&gt;操作系统和 Microsoft Windows&amp;#174; 2000 &lt;br /&gt;操作系统中内置的客户端功能。如果一个客户端、域控制器或目标服务器运行的是较早的操作系统，则它本身不能使用 Kerberos 身份验证。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;TCP/IP 网络连接&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;为了使 Kerberos 身份验证发挥作用，在客户端、域控制器和目标服务器之间必须存在 TCP/IP 网络连接。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果使用了防火墙，确保在网络中启用了 Kerberos 端口。有关域控制器所使用的公共端口，请参见 Microsoft 知识库中的&amp;#8220;Windows &lt;br /&gt;Server 域控制器默认端口列表&amp;#8221;，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkId=22894"&gt;http://go.microsoft.com/fwlink/?LinkId=22894&lt;/a&gt;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.microsoft.com/technet/images/note.gif" /&gt;注意&lt;br /&gt;可以使用缓存的凭据登录的用户可能不会意识到连接问题。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;域名系统&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;客户端使用完全合格的域名 (FQDN) 来访问域控制器。&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;DNS 必须运行以使客户端可以获得 FQDN。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;为了得到最好的结果，不要使用具有 DNS 的 Hosts 文件。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;关于 DNS 的信息，请参见&amp;#8220;Microsoft Windows Server 2003 部署工具包&amp;#8221;中的&amp;#8220;部署 DNS 的过程&amp;#8221;，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkId=23041"&gt;http://go.microsoft.com/fwlink/?LinkId=23041&lt;/a&gt;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Active Directory 域&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;较早的操作系统（如 Microsoft&amp;#174; Windows NT&amp;#174; 4.0 操作系统）并不支持 Kerberos 身份验证。必须使用 Active &lt;br /&gt;Directory&amp;#174; 目录服务中的用户和计算机帐户来使用 Kerberos 身份验证。本地帐户和 Windows NT 域帐户不能用于 Kerberos &lt;br /&gt;身份验证。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;时间服务&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;为了使 Kerberos 身份验证正常工作，使网络中的计算机上的时间同步（即网络中所有的域和林使用同一个时间源）非常重要。一个 Active &lt;br /&gt;Directory 域控制器将作为它的域的授权时间源，这保证了整个域具有相同的时间。更多信息请参见 Microsoft TechNet 上的&amp;#8220;Windows &lt;br /&gt;时间服务技术参考&amp;#8221;，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkId=25393"&gt;http://go.microsoft.com/fwlink/?LinkId=25393&lt;/a&gt;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;服务主体名称&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;服务主体名称 (SPN) 是服务器上所运行的服务的唯一标识符。需要为每个使用 Kerberos 身份验证的服务设置一个 &lt;br /&gt;SPN，以使客户端可以在网络中识别此服务。如果没有为一个服务设置 SPN，则客户端将无法定位此服务。如果未正确设置 SPN，则将不可能进行 Kerberos &lt;br /&gt;身份验证。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果未正确设置 SPN 并且一个客户端尝试获取一个服务票证，则一般的结果是出现 KDC_ERR_C_PRINCIPAL_UNKNOWN 或 &lt;br /&gt;KDC_ERR_S_PRINCIPAL_UNKNOWN 错误。此外，还有许多由于没有或不正确地设置 SPN 而造成的其他错误。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;一般来讲，可以在创建服务帐户或在一台新的计算机上安装服务时设置 SPN。SPN &lt;br /&gt;标识了服务在哪台计算机上运行、服务在哪个帐户下运行以及服务在哪个端口上运行等详细信息。因此，设置一个服务帐户的 SPN &lt;br /&gt;的安全性几乎与创建此帐户的安全性相同。为一个没有设置 SPN 的服务创建的服务帐户将不会在 2003 &lt;br /&gt;功能级域中发布使用它的服务密钥加密的服务票证。相反，Windows Server 将使用用户对用户模式。有关用户对用户身份验证的更多信息，请参见&amp;#8220;Windows &lt;br /&gt;Server 2003 技术参考&amp;#8221;中的&amp;#8220;Kerberos Version 5 身份验证协议的工作原理&amp;#8221;，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkID=27175"&gt;http://go.microsoft.com/fwlink/?LinkID=27175&lt;/a&gt;，在其中搜索&amp;#8220;用户对用户身份验证的过程&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;表 1 中列出了计算机帐户所识别的内建 SPN。如果计算机具有一个 HOST SPN，则计算机帐户可以识别这些 SPN。除非在对象上显式地放置了这些 &lt;br /&gt;SPN，否则 HOST SPN 可以代替表中所列出的任意 SPN。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;表 1 计算机帐户可识别的内置 SPN&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table id="EMD" class="dataTable" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;thead&gt;&lt;br /&gt;&lt;tr class="stdHeader" valign="top"&gt;&lt;br /&gt;&lt;td id="colEOD" width="25%"&gt;SPN&lt;/td&gt;&lt;br /&gt;&lt;td id="colESD" width="25%"&gt;?&lt;/td&gt;&lt;br /&gt;&lt;td id="colEWD" width="25%"&gt;?&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;" id="colE1D" width="25%"&gt;?&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;alerter&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;http&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;policyagent&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;scm&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;appmgmt&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;ias&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;protectedstorage&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;seclogon&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;browser&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;iisad&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;rasman&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;snmp&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;cifs&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;min&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;remoteaccess&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;spooler&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;cisvc&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;messenger&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;replicator&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;tapisrv&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;clipsrv&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;msiserver&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;rpc&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;time&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;dcom&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;mcsvc&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;rpclocator&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;trksvr&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;dhcp&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;netdde&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;rpcss&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;trkwks&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;dmserver&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;netddedsm&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;rsvp&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;ups&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;dns&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;netlogon&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;samss&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;w3svc&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;dnscache&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;netman&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;scardsvr&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;wins&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;eventlog&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;nmagent&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;scesrv&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;www&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;eventsystem&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;oakley&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;schedule&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;fax&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;plugplay&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt; &lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div class="dataTableBottomMargin"&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;SPN 在 Active Directory 中的一个用户帐户下作为名为 &lt;strong&gt;Service-Principal-Name&lt;/strong&gt; 的属性注册。SPN &lt;br /&gt;将分配到此 SPN 所标识的服务在其下运行的帐户上。任何服务都可以查找另一个服务的 SPN。当一个服务要对另一个服务进行身份验证时，它将使用此服务的 SPN &lt;br /&gt;来区分此服务和在此计算机上运行的所有其他服务。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;SPN 对于约束委派非常重要。在为委派设置域计算机或用户帐户时，其中的一个步骤就是列出此计算机允许委派到的其他计算机上的服务的 SPN。这个列表构成了一种 &lt;br /&gt;ACL。在其他计算机上运行的服务由为这些服务指定的 SPN 标识。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;设置 SPN 时所需的权限&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;为了在给定计算机帐户上写入任意的 SPN，需要&amp;#8220;&lt;strong&gt;写入 &lt;br /&gt;ServicePrincipalName&lt;/strong&gt;&amp;#8221;权限，此权限不会默认授予创建此帐户的人。创建者具有&amp;#8220;&lt;strong&gt;已验证的对服务主体名称的写入&lt;/strong&gt;&amp;#8221;权限。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;为了在用户帐户上写入 SPN，&amp;#8220;&lt;strong&gt;写入公共信息&lt;/strong&gt;&amp;#8221;权限授予了安全主体创建任意 SPN 的能力。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;表 1 影响 SPN 的创建的默认 Active Directory 权限&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table id="EWAAC" class="dataTable" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;thead&gt;&lt;br /&gt;&lt;tr class="stdHeader" valign="top"&gt;&lt;br /&gt;&lt;td id="colEYAAC" width="33%"&gt;安全主体&lt;/td&gt;&lt;br /&gt;&lt;td id="colE3AAC" width="33%"&gt;计算机帐户对象&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;" id="colEABAC" width="33%"&gt;用户帐户对象&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;帐户创建者&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;已验证的对服务主体名称的写入&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;写入公共信息&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;自身&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;已验证的对服务主体名称的写入&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;无&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;帐户操作者&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;写入 servicePrincipalName&lt;/p&gt;&lt;br /&gt;&lt;p&gt;已验证的对服务主体名称的写入&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;写入公共信息&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;管理员&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;写入 servicePrincipalName&lt;/p&gt;&lt;br /&gt;&lt;p&gt;已验证的对服务主体名称的写入&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;写入公共信息&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;身份验证的用户&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;无&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;无&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div class="dataTableBottomMargin"&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;因此，计算机帐户可以写入经验证的 SPN，而不是任意的 SPN。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;设置 SPN 的要求&lt;/p&gt;&lt;br /&gt;&lt;p&gt;多项服务可以在同一个帐户下同时运行。因此，对于每个已设置的 SPN，都需要以下四个唯一的信息段：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;服务的类型，正式的名称是服务类。此信息段使用户可以区分在同一个帐户下运行的多项服务。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;服务在其下运行的帐户。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;运行服务的计算机，包括指向此计算机的所有别名。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;服务在其上运行的端口。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;这四个信息段唯一地标识了在网络上运行的所有服务，并且可以用于对任意服务进行手动身份验证。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;SPN 本身由三个信息段组成，即 &lt;em&gt;ServiceClass&lt;/em&gt;/&lt;em&gt;Host&lt;/em&gt;:&lt;em&gt;Port&lt;/em&gt;，其中：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;ServiceClass&lt;/em&gt; 是 SPN 的服务类。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;Host&lt;/em&gt; 是 SPN 所属的计算机的名称。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;Port&lt;/em&gt; 是注册 SPN 的服务所运行的端口。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;有关如何使用 Setspn 工具操作帐户的服务主体名称的更多信息，请参考&amp;#8220;附录 A：诊断工具&amp;#8221;中的&amp;#8220;Setspn&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#top"&gt;&lt;img border="0" alt="返回页首" src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" width="7" height="9" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="EVDAC"&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Windows 身份验证方案&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;使用 Windows 操作系统可以有很多不同的身份验证方案。Kerberos &lt;br /&gt;身份验证以委派为特征，这种特征使得可以跨多台服务器模仿用户身份。Windows Server 2003 中引入了约束委派。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;本白皮书将集中讨论 Kerberos 委派的故障诊断问题。理解 Kerberos &lt;br /&gt;身份验证怎样使用约束委派和协议转换进行操作，有助于在解决问题时对配置选项做出选择。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;委派提供了与 NTLM 所提供的质询响应方法不同的身份验证方法。以下各节将介绍 NTLM 身份验证、使用 NTLM 身份验证的 Kerberos &lt;br /&gt;身份验证以及涉及 Kerberos 身份验证的三种不同的委派方案。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;NTLM 身份验证&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 1 NTLM 质询响应" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd01.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 1 NTLM 质询响应&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;较早版本的 Windows 操作系统使用 NTLM 来验证凭据。在 NTLM &lt;br /&gt;协议中，客户端将用户名发送到服务器；服务器生成一个质询并将其发送到客户端；客户端使用用户的密码加密这个质询；客户端将一个响应发送到服务器。质询响应机制根据帐户是本地用户帐户还是域用户帐户而有所不同。&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;本地用户帐户。&lt;/strong&gt;服务器将检查它的安全帐户管理器 &lt;br /&gt;(SAM)。如果服务器计算出一个相似的结果，它将验证用户的响应，构建一个访问令牌，并为用户建立一个会话。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;域用户帐户。&lt;/strong&gt;服务器将质询和客户端的响应一起转发到域控制器。域控制器对响应进行验证，并将客户端的组信息发送到服务器计算机。服务器使用此信息构建一个访问令牌，并为用户建立一个会话。&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 2 使用 NTLM 验证到后端服务器" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd02.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 2 使用 NTLM 验证到后端服务器&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;作为零用户访问&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;NTLM &lt;br /&gt;要求客户端在需要连接远程服务器时具有用户的密码，但是此密码从不传送到服务器。其缺点是前端服务器无法使用用户的身份访问后端服务器，这是因为前端服务器不具有用户的密码。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;因此，只要前端服务器以用户方式尝试连接到后端服务器，它就会作为零用户进行连接。（参见图 2。）当 System 帐户下运行的一个进程尝试使用 NTLM &lt;br /&gt;协议访问远程资源时，也会出现零用户。因此，如果遇到一条内容为&amp;#8220;拒绝零用户访问&amp;#8221;的错误消息，则可以假定连接使用的是 NTLM。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;在 NTLM &lt;br /&gt;身份验证中，当用户验证前端服务器后，如果前端服务器需要访问在后端服务器上运行的服务，则无法保存用户的凭据。后端服务器接收到一个来自前端服务器帐户的身份验证请求，但是后端服务器：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;无法确定用户是谁。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;无法区分两个用户的身份以确定哪个用户向前端服务器发出了请求。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;无法根据用户的身份提供对资源的不同的访问控制。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;使用 NTLM 身份验证或单帐户映射的 Kerberos 身份验证&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 3 Kerberos 和 NTLM 混合身份验证" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd03.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 3 Kerberos 和 NTLM 混合身份验证&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Kerberos &lt;br /&gt;身份验证可以增强安全性，这是因为可以建立审核和可计量性。然而，前端服务器可能会具有在高流量的情况下对成千个唯一用户进行身份验证而增加的负载。另一方面，如果使用 &lt;br /&gt;NTLM，在对前端服务器进行最初的身份验证之后，将不再需要对用户进行身份验证，而只需要验证计算机帐户。图 3 中显示的身份验证方案结合了 NTLM 和 &lt;br /&gt;Kerberos &lt;br /&gt;身份验证。用户的身份将传送到另一台计算机以允许跟踪和记录，但是最后一次转发将在此计算机帐户之下进行以监听前端服务器上的负载。然而，由于前面在零用户情形下给出的相同的原因（即后端服务器无法验证请求服务的用户的身份），不推荐采用这种方式。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;一个相似的方案是将前端服务器配置为使用单个帐户来访问后端服务器。这将出现同样的结果，即使在两次转发中都使用了 Kerberos 身份验证。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;由于在这两种方案中都没有使用用户的身份来访问后端服务器，所以不推荐采用这两种方案。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Kerberos 身份验证&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;只有在使用 Kerberos 协议时才可以使用委派。因此，委派方案中所涉及的所有部分都必须使用 Kerberos 协议。本节将介绍三种委派方案：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;Kerberos 身份验证&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;使用约束委派的 Kerberos 身份验证&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;使用约束委派和协议转换的 Kerberos 身份验证&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Kerberos 身份验证&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 4 基本的 Kerberos 委派" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd04.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 4 基本的 Kerberos 委派&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;如果使用 Kerberos &lt;br /&gt;身份验证，当用户验证到前端服务器时，服务器将从在自己的服务帐户下运行切换到在用户的帐户下运行。然后前端服务器可以模仿用户来访问此用户有权访问的任意资源。而且，后端服务器可以验证此用户是请求访问的实体。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;委派使用户的凭据可以从一台服务器传送到另一台服务器，并使用户的身份可以在从一台计算机到另一台计算机请求服务时予以保存。因此，图 4 &lt;br /&gt;中显示的前端服务器可以由多台中间层服务器代替，但是仍然需要模仿用户来与后端服务器进行通信。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.microsoft.com/technet/images/note.gif" /&gt;注意&lt;br /&gt;必须为委派信任所有的中间层服务器。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;使用约束委派的 Kerberos 身份验证&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;在 Windows Server 2003 中，约束委派为域管理员提供了一种对委派信任的帐户可以访问的网络资源进行限制的方式。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;另一方面，在 Windows 2000 中 Windows &lt;br /&gt;不支持对委派的限制。在为委派信任一个帐户之后，此服务就可以使用用户的身份访问任意的网络资源。如果这项特定的服务受到了恶意用户的损坏，则将非常危险。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.microsoft.com/technet/images/note.gif" /&gt;注意&lt;br /&gt;只有当域处于 2003 &lt;br /&gt;域功能级时，才可以使用约束委派。在图 5 所示的一个客户端从 Windows Server &lt;br /&gt;上升到前端服务器再到后端服务器的方案中，必须将前端服务器配置为只对后端服务器使用委派。&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 5 约束委派" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd05.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 5 约束委派&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;为了限制服务可以以用户方式访问的资源，可以通过列出帐户可向其提交委派凭据的服务来配置约束委派。此列表的形式为允许用户委派到的 SPN。在约束委派中，Web &lt;br /&gt;服务的帐户只接收委派到后端服务器的 SPN 的权限。&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 6 遭破坏的 Web 服务" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd06.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 6 遭破坏的 Web 服务&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;在使用约束委派时，如果一个恶意用户破坏了 Web 服务帐户，则这个恶意用户只能访问后端服务器。（参见图 6。）&lt;/p&gt;&lt;br /&gt;&lt;p&gt;有关 SPN 的更多信息，请参见本白皮书前面的&amp;#8220;服务主体名称&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;有关约束委派的更多信息，请参见 Microsoft TechNet 上的&amp;#8220;Kerberos 协议转换和约束委派&amp;#8221;，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkId=18156"&gt;http://go.microsoft.com/fwlink/?LinkId=18156&lt;/a&gt;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;使用约束委派和协议转换的 Kerberos 身份验证&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;在 Windows Server 2003 中，即使初始的身份验证使用另一种 SSP 来代替 Kerberos SSP（例如，NTLM 或 &lt;br /&gt;Schannel），协议转换也可以使委派发生。&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 7 Kerberos 协议转换的 SSL" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd07.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 7 Kerberos 协议转换的 SSL&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;由于在 Internet 上执行 Kerberos 身份验证是不现实的，所以前端服务器必须使用安全套接字层 (SSL) &lt;br /&gt;等方法。然而，在前端服务器验证了用户的身份之后，前端服务器可以执行协议转换，并随后在公司网络内部使用所有的 Kerberos &lt;br /&gt;身份验证功能。因此，开发者不需要使整个身份验证过程依赖于单个身份验证协议。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;有关协议转换和约束委派的更多信息，请参见 Microsoft TechNet 上的&amp;#8220;Kerberos 协议转换和约束委派&amp;#8221;，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkId=18156"&gt;http://go.microsoft.com/fwlink/?LinkId=18156&lt;/a&gt;。&lt;/p&gt;&lt;br /&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#top"&gt;&lt;img border="0" alt="返回页首" src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" width="7" height="9" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="E3HAC"&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;配置 Kerberos 委派&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Kerberos 委派需要 Kerberos 身份验证。因此，在对委派进行故障诊断之前，确保已满足了 Kerberos &lt;br /&gt;身份验证的基础结构的要求。更多信息请参见本白皮书的&amp;#8220;基础结构的要求&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 8 Kerberos 委派的基本要求" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd08.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 8 Kerberos 委派的基本要求&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;委派的要求&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;应用程序的域用户不能选中&lt;strong&gt;敏感帐户，不能被委派&lt;/strong&gt;选项。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;必须为中间层服务器上的服务注册 SPN。如果此服务帐户是一个域用户帐户，则此服务的 SPN &lt;br /&gt;必须由域管理员注册。如果此服务帐户使用计算机的帐户，则此过程可以自己注册或者由本地管理员使用 Setspn 来注册。有关 Setspn 的更多信息，请参见&amp;#8220;附录 &lt;br /&gt;A：诊断工具&amp;#8221;中的&amp;#8220;Setspn&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;必须为委派信任中间层服务帐户。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;必须在后端服务器上为服务注册一个 SPN。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;如果使用了约束委派，则中间层服务和后端服务必须位于同一个域中。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#top"&gt;&lt;img border="0" alt="返回页首" src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" width="7" height="9" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="EYIAC"&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;诊断委派问题：四个清单&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;以下各节可以帮助您诊断在客户端到中间层到后端委派方案中出现的问题。此外，以下各节还可以帮助您应对在建立此方案时常常遇到的困难。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;这些小节描述了可能发生的各种问题，讨论了这些问题可能的原因，并阐述了解决这些问题的步骤。讨论将以清单的形式进行，每个清单都包含一个&amp;#8220;任务&amp;#8221;列和一个&amp;#8220;过程&amp;#8221;列。在大多数情况下，&amp;#8220;过程&amp;#8221;列概述了为了完成任务所需做的工作。不过，过程的详细信息将在清单后的小节中进行说明。&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;清单 1 &amp;#8212; Active Directory。&lt;strong&gt; &lt;/strong&gt;正确地配置 SPN 和帐户。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;清单 2 &amp;#8212; 客户端应用程序。正确地配置应用程序并使用 Kerberos 身份验证。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;清单 3 &amp;#8212; 中间层。为委派正确地配置服务并使用 Kerberos 身份验证。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;清单 4 &amp;#8212; 后端。为 Kerberos 身份验证配置服务。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;在一些组织中，配置帐户的管理员与对委派问题进行故障诊断的人可能并不相同。因此，在一个清单中收集了 Active Directory 任务。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;其他三个清单是通过方案中的角色来组织的，其中包含与以下角色相关的帐户配置信息：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;客户端。&lt;/strong&gt;用户由其提出请求的应用程序。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;中间层。&lt;/strong&gt; 位于中间的以用户方式提出请求的服务。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;后端。&lt;/strong&gt; 最终与模仿用户的中间层服务进行通信的服务。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;对于清单来说，参加委派的每个系统或服务只会应用一个清单。也就是说，无论环境有多复杂，对所有的客户端使用客户端清单，对所有的后端服务使用后端清单，并且对位于中间的所有服务使用中间层清单。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;图 9 显示了在委派方案中可能涉及到的元素。&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 9 客户端到中间层再到后端的委派方案" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd09.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 9 客户端到中间层再到后端的委派方案&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;在上面的例子中，客户端具有客户端角色；中间层服务器 1 具有中间层角色；后端服务器 1 到 n 具有后端角色；位于中间的中间层服务器 2 到 n &lt;br /&gt;具有中间层和后端角色。对于这些清单来说，将中间层服务器 n 作为中间层服务器的原因是后端服务所需的任务是中间层服务的任务的一个子集。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;故障诊断的策略&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;一些错误消息可能会帮助诊断发生问题的位置，但是有时这些消息起不到帮助作用。有关故障诊断 Kerberos 错误的更多信息，请参见&amp;#8220;故障诊断 &lt;br /&gt;Kerberos 错误&amp;#8221;白皮书，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkID=27176"&gt;http://go.microsoft.com/fwlink/?LinkID=27176&lt;/a&gt;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;在进行故障诊断时，确保使用 Kerberos 协议验证到每项服务。不过需要注意的是，在对每项服务进行故障诊断时，可能需要使用不同的应用程序。例如：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;如果服务器正在运行 SQL Server，则客户端应用程序可以是 Query Analyzer、osql.exe 或使用 ADO 的 VB &lt;br /&gt;Script。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;如果服务器正在运行 IIS，则客户端应用程序可以是 Internet Explorer。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;在典型的委派使用中，用户直接或通过 Web 服务方式验证到运行 IIS 并访问 SQL 数据库的服务器，如果使用委派，中间层服务可以模仿具有访问 SQL &lt;br /&gt;数据库中的数据的权限的用户。在这种情况下，经常使用约束委派来使用户可以访问在计算机上运行的特定服务。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;清单 1 &amp;#8212; Active Directory&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Active Directory：正确配置 SPN 和帐户&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table id="E2KAC" class="dataTable" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;thead&gt;&lt;br /&gt;&lt;tr class="stdHeader" valign="top"&gt;&lt;br /&gt;&lt;td id="colE4KAC" width="34%"&gt;任务&lt;/td&gt;&lt;br /&gt;&lt;td id="colEBLAC" width="34%"&gt;过程&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;" id="colEFLAC" width="32%"&gt;完成的数据/执行人&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr class="subHeader"&gt;&lt;br /&gt;&lt;td&gt;从命令提示符执行&lt;/td&gt;&lt;br /&gt;&lt;td&gt; &lt;/td&gt;&lt;br /&gt;&lt;td&gt; &lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;验证为中间层服务注册了 SPN。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;验证为后端服务注册了 SPN。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;在命令提示符下键入：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;setspn &amp;#8211;L&lt;/strong&gt; &lt;em&gt;帐户&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;其中&lt;em&gt;帐户&lt;/em&gt;是服务在其下运行的帐户的名称。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;验证存在服务帐户的以下两个 SPN：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;一个是 &lt;em&gt;ServiceClass/Host:Port&lt;/em&gt; 的 SPN&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;一个是 &lt;em&gt;ServiceClass/FQDN&lt;/em&gt; 的 &lt;br /&gt;SPN&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;详细的指导请参见&amp;#8220;验证中间层服务帐户的 SPN&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;有关的例子请参见&amp;#8220;附录 B&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;?&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="subHeader"&gt;&lt;br /&gt;&lt;td&gt;从&amp;#8220;Active Directory 用户和计算机&amp;#8221;&lt;/td&gt;&lt;br /&gt;&lt;td&gt; &lt;/td&gt;&lt;br /&gt;&lt;td&gt; &lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;如果使用了约束委派：&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;验证域功能级已设置为 Windows Server &lt;br /&gt;2003。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;详细的指导请参见&amp;#8220;验证域功能级&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;对于用户帐户：&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;确认未选中&amp;#8220;&lt;strong&gt;敏感帐户，不能被委派&lt;/strong&gt;&amp;#8221;选项。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;右键单击用户帐户，然后单击&amp;#8220;&lt;strong&gt;属性&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;单击&amp;#8220;&lt;strong&gt;帐户&lt;/strong&gt;&amp;#8221;选项卡。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;在&amp;#8220;&lt;strong&gt;帐户选项&lt;/strong&gt;&amp;#8221;框中，确认未选中&amp;#8220;&lt;strong&gt;敏感帐户，不能被委派&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;详细的指导请参见&amp;#8220;验证帐户选项&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;验证为中间层服务配置了委派。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;如果中间层服务使用的是计算机帐户：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;右键单击计算机帐户，然后单击&amp;#8220;&lt;strong&gt;属性&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;如果此帐户在 Windows 2000 &lt;br /&gt;功能级域中，确认选中了&amp;#8220;&lt;strong&gt;帐户可以委派其他帐户&lt;/strong&gt;&amp;#8221;选项。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;如果此帐户在 Windows Server 2003 &lt;br /&gt;功能级域中，配置&amp;#8220;&lt;strong&gt;委派&lt;/strong&gt;&amp;#8221;选项卡上的各个选项。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;如果中间层服务使用的是域用户帐户：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;右键单击服务帐户，然后单击&amp;#8220;&lt;strong&gt;属性&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;如果此服务帐户在 Windows 2000 &lt;br /&gt;功能级域中，应该选中&amp;#8220;&lt;strong&gt;帐户&lt;/strong&gt;&amp;#8221;选项卡上的&amp;#8220;&lt;strong&gt;帐户可以委派其他帐户&lt;/strong&gt;&amp;#8221;选项。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;如果此计算机帐户在 Windows Server 2003 &lt;br /&gt;功能级域中，配置&amp;#8220;&lt;strong&gt;委派&lt;/strong&gt;&amp;#8221;选项卡上的各个选项。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;详细的指导请参见&amp;#8220;验证中间层服务帐户的委派&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;有关的例子请参见&amp;#8220;附录 B&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;?&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;如果使用&amp;#8220;组策略&amp;#8221;进行配置，验证中间层服务具有以下两种权限之一：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;作为操作系统的一部分&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;在身份验证之后模仿一个客户端&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;通过单击&amp;#8220;&lt;strong&gt;开始&lt;/strong&gt;&amp;#8221;，&amp;#8220;&lt;strong&gt;程序&lt;/strong&gt;&amp;#8221;，&amp;#8220;&lt;strong&gt;管理工具&lt;/strong&gt;&amp;#8221;，然后单击&amp;#8220;&lt;strong&gt;域安全策略&lt;/strong&gt;&amp;#8221;来打开域安全策略。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;单击&amp;#8220;&lt;strong&gt;本地策略&lt;/strong&gt;&amp;#8221;，然后单击&amp;#8220;&lt;strong&gt;用户权限分配&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;详细的指导请参见&amp;#8220;验证中间层服务权限&amp;#8221;。 &lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;?&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div class="dataTableBottomMargin"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 10 Active Directory 帐户配置" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd10.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 10 Active Directory 帐户配置&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;以下任务具有常规的配置指导。可以在&amp;#8220;附录 B&amp;#8221;中找到在常见的方案中需要设置的选项的示例。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证中间层服务帐户的 SPN&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;验证为此方案中的每个中间层服务帐户都注册了一个 SPN。如果中间层服务作为本地系统或网络服务运行，则不需要手动设置任何 SPN。这样，由于所有的 SPN &lt;br /&gt;都将自动设置，所以不需要验证是否正确地设置了 SPN。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证为服务帐户设置了 SPN&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;在命令提示符下键入：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;setspn &amp;#8211;L&lt;/strong&gt; &lt;em&gt;帐户&lt;/em&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;其中&lt;em&gt;帐户&lt;/em&gt;是服务帐户的名称。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;应该最少列出两个 SPN，这是因为为了使委派正常工作，必须存在以下两个服务帐户的 SPN：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;ServiceClass&lt;/em&gt;&lt;strong&gt;/&lt;/strong&gt;&lt;em&gt;Host:Port&lt;/em&gt;，其中 &lt;em&gt;ServiceClass&lt;/em&gt; &lt;br /&gt;是适当的服务类，&lt;em&gt;Host&lt;/em&gt; 是主机的名称，&lt;em&gt;Port&lt;/em&gt; 是运行服务的端口。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;ServiceClass&lt;/em&gt;&lt;strong&gt;/&lt;/strong&gt;&lt;em&gt;FQDN&lt;/em&gt;，&lt;em&gt; &lt;/em&gt;其中 &lt;em&gt;FQDN&lt;/em&gt; &lt;br /&gt;是主机的完全合格域名。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;疑难解答&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果没有列出任何 SPN 或缺少一个 SPN，则使用 &lt;strong&gt;setspn &amp;#8211;A&lt;/strong&gt; 命令添加适当的 SPN。如果列出了重复的 SPN，则使用 &lt;br /&gt;Setspn 工具重命名或删除重复的 SPN。可以使用 Ldifde 来查询全局目录以确保没有重复的 SPN。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;有关的例子请参见&amp;#8220;附录 B&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证后端服务帐户的 SPN&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;验证为方案中的每个后端服务帐户都注册了一个 SPN。如果后端服务作为本地系统或网络服务运行，则不需要手动设置任何 SPN。这样，由于所有的 SPN &lt;br /&gt;都将自动设置，所以不需要验证是否正确地设置了 SPN。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果后端服务使用的是域用户帐户，则验证为服务帐户设置了 SPN。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;有关的例子请参见&amp;#8220;附录 B&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证域功能级&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果配置的是约束委派，则需要验证域控制器在 Windows Server 2003 功能级上操作。（注意：只有约束委派才需要此步骤。）&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 11 Windows Server 2003 域功能级" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd11.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 11 Windows Server 2003 域功能级&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.microsoft.com/technet/images/important.gif" /&gt;重要&lt;br /&gt;Windows 2000 &lt;br /&gt;不支持约束委派。由于不受限的委派会降低安全性，所以应避免在 Windows 2000 环境中使用委派。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;要验证域控制器的功能级&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;打开&amp;#8220;Active Directory 用户和计算机&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;右键单击&amp;#8220;&lt;em&gt;DomainName&lt;/em&gt;&amp;#8221;，然后单击&amp;#8220;&lt;strong&gt;属性&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;确认在&amp;#8220;&lt;strong&gt;域功能级&lt;/strong&gt;&amp;#8221;下列出了 Windows Server 2003。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证用户帐户选项&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;确认未选中用户帐户的&amp;#8220;&lt;strong&gt;敏感帐户，不能被委派&lt;/strong&gt;&amp;#8221;选项。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;要确认未选中&amp;#8220;&lt;strong&gt;敏感帐户，不能被委派&lt;/strong&gt;&amp;#8221;选项：&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;打开&amp;#8220;Active Directory 用户和计算机&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;右键单击&amp;#8220;&lt;em&gt;UserAccount&lt;/em&gt;&amp;#8221;，然后单击&amp;#8220;&lt;strong&gt;属性&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;单击&amp;#8220;&lt;strong&gt;帐户&lt;/strong&gt;&amp;#8221;选项卡。&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 12 用户帐户选项" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd12.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 12 用户帐户选项&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;4.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;在&amp;#8220;&lt;strong&gt;帐户选项&lt;/strong&gt;&amp;#8221;框中，确认未选中&amp;#8220;&lt;strong&gt;敏感帐户，不能被委派&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证中间层服务帐户的委派&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;验证为委派信任此方案中的每个中间层服务帐户。如果有一个中间层服务帐户不信任委派，则将收到类似如下的错误信息：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;零用户登录失败&lt;/p&gt;&lt;br /&gt;&lt;p&gt;NT AUTHORITY\ANONYMOUS 用户登录失败&lt;/p&gt;&lt;br /&gt;&lt;p&gt;尽管在 客户端和中间层服务之间或中间层服务和后端服务之间可以使用 Kerberos &lt;br /&gt;协议，但是如果一项中间层服务未受到委派信任，则此中间层服务将不具有客户端的 TGT。这样，身份验证将退回到 &lt;br /&gt;NTLM。由于中间层服务不具有网络凭据（即用户的密码），所以它将成为零用户。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;有关的例子请参见&amp;#8220;附录 B&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;服务在计算机帐户下运行&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果服务在计算机帐户下运行，则需要为委派的服务器配置此计算机帐户。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;为了验证中间层服务器计算机帐户受到委派信任&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;打开&amp;#8220;Active Directory 用户和计算机&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;找到中间层服务器的计算机帐户。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;右键单击此帐户，然后单击&amp;#8220;&lt;strong&gt;属性&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;如果此计算机帐户在 Windows 2000 功能级域中，应该选中&amp;#8220;&lt;strong&gt;常规&lt;/strong&gt;&amp;#8221;选项卡上的&amp;#8220;&lt;strong&gt;信任计算机作为委派&lt;/strong&gt;&amp;#8221;选项。（参见图 &lt;br /&gt;13。） &lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 13 为委派信任功能级 Windows 2000 域计算机帐户" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd13.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 13 为委派信任功能级 Windows 2000 域计算机帐户&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;如果此计算机帐户在 Windows Server 2003 功能级域中，单击&amp;#8220;&lt;strong&gt;委派&lt;/strong&gt;&amp;#8221;选项卡。&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 14 没有为委派信任 Windows Server 2003 功能级域计算机帐户" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd14.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 14 没有为委派信任 Windows Server 2003 功能级域计算机帐户&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;在&amp;#8220;&lt;strong&gt;委派&lt;/strong&gt;&amp;#8221;选项卡上，如果选中了&amp;#8220;&lt;strong&gt;不信任此计算机作为委派&lt;/strong&gt;&amp;#8221;，则选择以下两个&amp;#8220;&lt;strong&gt;信任&lt;/strong&gt;&amp;#8221;选项之一：&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;要将帐户配置为使用不受限的委派，选择&lt;strong&gt;信任此计算机来委派任何服务（仅 Kerberos）&lt;/strong&gt;。不推荐选择此选项。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;要将帐户配置为使用受限的委派，选择&lt;strong&gt;仅信任此计算机来委派指定服务&lt;/strong&gt;。通过选择以下两个选项之一来配置协议转换：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;要将帐户配置为使用约束委派而不进行协议转换，选择&amp;#8220;&lt;strong&gt;仅使用 Kerberos&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;要将帐户配置为使用约束委派并且进行协议转换，选择&amp;#8220;&lt;strong&gt;使用任意身份验证协议&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.microsoft.com/technet/images/note.gif" /&gt;注意&lt;br /&gt;在使用约束委派时，确认适当的 SPN &lt;br /&gt;在此帐户可以向其提交委派凭据列表的服务之内。前面曾经提到过，SPN 本身由三个信息段（即 ServiceClass/Host:Port）组成，其中：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;ServiceClass&lt;/em&gt; 是 SPN 的服务类。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;Host&lt;/em&gt; 是 SPN 所属的计算机。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;Port&lt;/em&gt; 是注册 SPN &lt;br /&gt;的服务在其上运行的端口。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;如果服务在域用户帐户下运行&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果服务在域用户帐户下运行，则需要为委派配置服务帐户。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;为了验证为委派信任了中间层服务帐户&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;打开&amp;#8220;Active Directory 用户和计算机&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;定位到所要配置的帐户，右键单击此帐户，然后单击&amp;#8220;&lt;strong&gt;属性&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;如果此计算机帐户在 Windows 2000 功能级域中，单击&amp;#8220;&lt;strong&gt;帐户&lt;/strong&gt;&amp;#8221;选项卡。&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 15 为委派信任服务帐户" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd15.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 15 为委派信任服务帐户&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;在&amp;#8220;&lt;strong&gt;帐户选项&lt;/strong&gt;&amp;#8221;框中，确认选中了&amp;#8220;&lt;strong&gt;敏感帐户，不能被委派&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;如果此服务帐户在 Windows Server 2003 功能级域中，单击&amp;#8220;&lt;strong&gt;委派&lt;/strong&gt;&amp;#8221;选项卡。&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 16 不使用协议转换的服务帐户" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd16.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 16 不使用协议转换的服务帐户&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;在&amp;#8220;&lt;strong&gt;委派&lt;/strong&gt;&amp;#8221;选项卡上，选择以下两个&amp;#8220;&lt;strong&gt;信任&lt;/strong&gt;&amp;#8221;选项之一：&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;要将此帐户配置为使用不受限的委派，选择&amp;#8220;&lt;strong&gt;信任此用户来委派任何服务（仅 Kerberos）&lt;/strong&gt;&amp;#8221;。不推荐选择此选项。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;要将此帐户配置为使用受限的委派，选择&amp;#8220;&lt;strong&gt;仅信任此用户来委派指定服务&lt;/strong&gt;&amp;#8221;。通过选择以下两个选项之一来配置协议转换：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;要将此帐户配置为使用约束委派而不进行协议转换，选择&amp;#8220;&lt;strong&gt;仅使用 Kerberos&lt;/strong&gt;&amp;#8221;。（参见图 16。）&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;要将帐户配置为使用约束委派并且进行协议转换，选择&amp;#8220;&lt;strong&gt;使用任意身份验证协议&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.microsoft.com/technet/images/note.gif" /&gt;注意&lt;br /&gt;在使用约束委派时，确认适当的 SPN &lt;br /&gt;在此帐户可以向其提交委派凭据列表的服务之内。这些 SPN 应该是后端服务的 SPN。前面曾经提到过，SPN 本身由三个信息段（即 &lt;br /&gt;ServiceClass/Host:Port）组成，其中：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;ServiceClass&lt;/em&gt; 是 SPN 的服务类。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;Host&lt;/em&gt; 是 SPN 所属的计算机。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;Port&lt;/em&gt; 是注册 SPN &lt;br /&gt;的服务在其上运行的端口。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证中间层服务权限&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;由于模仿另一个用户的能力是委派的一个主要部分，所以如果一个过程没有所需的权限，它将无法委派。因此，验证委派方案中的每个中间层服务都具有以下两种权限之一：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;作为操作系统的一部分（在 Windows 2000 或 Windows Server 2003 中可用）&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;在身份验证之后模仿一个客户端（在 Windows Server 2003 中新增）&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;这两种权限都给予一个帐户模仿另一个帐户的能力。&amp;#8220;在身份验证之后模仿一个客户端&amp;#8221;权限与&amp;#8220;作为操作系统的一部分&amp;#8221;权限相似，只是前者不能进行远程访问。即第一种权限只允许一个过程在身份验证之后进行模仿，而&amp;#8220;作为操作系统的一部分&amp;#8221;权限则允许一个过程在身份验证之前进行模仿。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;默认情况下，为本地系统帐户分配&amp;#8220;作为操作系统的一部分&amp;#8221;权限。因此，如果中间层服务在本地系统帐户下运行，则不需要在安全策略中修改用户权限的分配。对于所有其他的帐户，需要为其配置&amp;#8220;作为操作系统的一部分&amp;#8221;或&amp;#8220;在身份验证之后模仿一个客户端&amp;#8221;权限。如果使用组策略配置这些权限，则需要验证在域控制器上正确配置了策略。如果使用本地安全策略进行配置，在&amp;#8220;清单 &lt;br /&gt;3 &amp;#8212; 中间层&amp;#8221;中对此过程进行了介绍。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果使用了协议转换，中间层服务常常没有关于传入的用户身份的信息&amp;#8212;&amp;#8212;也就是说，传入的用户在身份验证时所使用的协议可能没有提供与 Kerberos &lt;br /&gt;身份验证相同的一组完整的凭据。因此，需要为这些中间层服务分配&amp;#8220;作为操作系统的一部分&amp;#8221;权限。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;例如，尽管运行 IIS 的中间层服务可能会将浏览 Web 页面的权限授予传入的用户，但是它并没有正式对此用户进行身份验证。因此，运行 IIS &lt;br /&gt;的中间层服务必须具有&amp;#8220;作为操作系统的一部分&amp;#8221;权限，以便在一个用户请求 Web 服务或后端服务器时模仿此用户。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;这样，应该为第一个中间层服务配置&amp;#8220;作为操作系统的一部分&amp;#8221;权限。然而，由于&amp;#8220;在身份验证之后模仿一个客户端&amp;#8221;权限不能进行远程访问，所以应该为任何将在初始的身份验证之后被访问的中间层服务配置&amp;#8220;在身份验证之后模仿一个客户端&amp;#8221;权限（如果使用的是 &lt;br /&gt;Windows Server 2003）。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;为了验证服务帐户具有适当的权限&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;通过依次单击&amp;#8220;&lt;strong&gt;开始&lt;/strong&gt;&amp;#8221;、&amp;#8220;&lt;strong&gt;程序&lt;/strong&gt;&amp;#8221;、&amp;#8220;&lt;strong&gt;管理工具&lt;/strong&gt;&amp;#8221;和&amp;#8220;&lt;strong&gt;域安全策略&lt;/strong&gt;&amp;#8221;来打开域安全策略。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.microsoft.com/technet/images/note.gif" /&gt;注意&lt;br /&gt;如果域控制器实施了组策略，则遵循步骤 &lt;br /&gt;1 中的指导。如果本地计算机实施了策略，则必须在本地计算机上打开本地安全策略。关于本地安全策略的指导请参见&amp;#8220;清单 3 &amp;#8212; 中间层&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;单击&amp;#8220;&lt;strong&gt;本地策略&lt;/strong&gt;&amp;#8221;，然后单击&amp;#8220;&lt;strong&gt;用户权限分配&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;例如，图 17 显示了为 Tailspintoys\iisservice 分配了&amp;#8220;在身份验证之后模仿一个客户端&amp;#8221;权限。&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 17 默认域安全设置中的用户权限分配" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd17.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 17 默认域安全设置中的用户权限分配&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;为了对服务帐户设置&amp;#8220;在身份验证之后模仿一个客户端&amp;#8221;权限&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;通过依次单击&amp;#8220;&lt;strong&gt;开始&lt;/strong&gt;&amp;#8221;、&amp;#8220;&lt;strong&gt;程序&lt;/strong&gt;&amp;#8221;、&amp;#8220;&lt;strong&gt;管理工具&lt;/strong&gt;&amp;#8221;和&amp;#8220;&lt;strong&gt;域安全策略&lt;/strong&gt;&amp;#8221;来打开域安全策略。（参见上方过程中的&amp;#8220;注意&amp;#8221;部分。）&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;单击&amp;#8220;&lt;strong&gt;本地策略&lt;/strong&gt;&amp;#8221;，再单击&amp;#8220;&lt;strong&gt;用户权限分配&lt;/strong&gt;&amp;#8221;，然后单击&amp;#8220;&lt;strong&gt;在身份验证之后模仿一个客户端&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;添加所有需要委派凭据的帐户（例如 IIS 帐户）。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;4.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;由于更改是在域控制器上的域安全策略中进行的，接着在命令提示符下对客户端计算机运行 &lt;strong&gt;gpupdate &lt;br /&gt;/force&lt;/strong&gt;，以立即传播策略的更改。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;清单 2 &amp;#8212; 客户端应用程序&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;客户端应用程序：为 Kerberos 身份验证配置并使用此身份验证&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table id="EYQAE" class="dataTable" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;thead&gt;&lt;br /&gt;&lt;tr class="stdHeader" valign="top"&gt;&lt;br /&gt;&lt;td id="colE1QAE" width="34%"&gt;任务&lt;/td&gt;&lt;br /&gt;&lt;td id="colE5QAE" width="34%"&gt;过程&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;" id="colECRAE" width="32%"&gt;完成的数据/执行人&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;从&amp;#8220;Active Directory 用户和计算机&amp;#8221;：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;验证未选中此帐户的&amp;#8220;&lt;strong&gt;敏感帐户，不能被委派&lt;/strong&gt;&amp;#8221;选项。（注意：如果完成了 Active Directory &lt;br /&gt;清单，就完成了此任务。）&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;右键单击用户帐户，然后单击&amp;#8220;属性&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;单击&amp;#8220;帐户&amp;#8221;选项卡。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;在&amp;#8220;帐户选项&amp;#8221;框中，确认未选中&amp;#8220;&lt;strong&gt;敏感帐户，不能被委派&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;详细的指导请参见&amp;#8220;验证用户帐户选项&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;验证名称解析工作正常。&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;使用 ping 来验证可用解析中间层服务器和后端服务器的 FQDN。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;验证客户端的本地 Hosts 文件不具有中间层服务器和后端服务器的短名称。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;如果客户端和服务器位于不同的域中，确保为连接使用服务器的 &lt;br /&gt;FQDN。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;详细的指导请参见&amp;#8220;验证名称解析&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;验证为 Kerberos 协议配置了客户端应用程序。&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;详细的指导请参见&amp;#8220;验证为 Kerberos 协议配置了应用程序&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;有关的例子请参见&amp;#8220;附录 B&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;验证客户端使用 Kerberos 身份验证来身份验证到服务。&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;可以通过以下方式进行验证：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;为 NTLM 故障审核检查中间层服务器上的安全日志。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;使用 Kerberos Tray 在连接到服务器之前清除票证，然后观察票证以找到一个连接到服务器的票证。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;使用网络监视器观察在 Kerberos 端口 88 上从客户端到域控制器的流量。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;详细的指导请参见&amp;#8220;验证客户端使用的是 Kerberos 身份验证&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;?&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div class="dataTableBottomMargin"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 18 Kerberos 客户端应用程序" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd18.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 18 Kerberos 客户端应用程序&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证用户帐户选项&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;验证未选中用户帐户的&amp;#8220;&lt;strong&gt;敏感帐户，不能被委派&lt;/strong&gt;&amp;#8221;选项。注意：如果按顺序完成以上清单，则此任务已在 Active Directory &lt;br /&gt;清单中完成。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;要验证未选中&amp;#8220;敏感帐户，不能被委派&amp;#8221;选项&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;打开&amp;#8220;Active Directory 用户和计算机&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;右键单击 &lt;em&gt;UserAccount&lt;/em&gt;，然后单击&amp;#8220;&lt;strong&gt;属性&lt;/strong&gt;&amp;#8221;，&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;再单击&amp;#8220;&lt;strong&gt;帐户&lt;/strong&gt;&amp;#8221;选项卡。&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 19 用户帐户选项" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd19.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 19 用户帐户选项&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;4.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;在&amp;#8220;&lt;strong&gt;帐户选项&lt;/strong&gt;&amp;#8221;框中，确认未选中&amp;#8220;&lt;strong&gt;敏感帐户，不能被委派&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证名称解析&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;验证名称解析工作正常。Kerberos 身份验证要求每台计算机都可以解析与之通信的下一台计算机的 DNS &lt;br /&gt;名称，而不论此计算机是位于中间层还是在后端。&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;使用 ping 验证可以进行以下解析：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;从客户端解析中间层服务器的 FQDN。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;从中间层服务器解析后端服务器的 FQDN。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;Ping 通常返回服务器的 FQDN 及 IP 地址。确保客户端的本地 Hosts &lt;br /&gt;文件不具有中间层服务器或后端服务器的短名称。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;如果客户端和服务器位于不同的域中，为连接使用服务器的 FQDN。如果使用 NetBIOS &lt;br /&gt;名称，则客户端计算机可能会解析一个本地域主体。这可能会造成身份验证的失败，这是因为客户端在本地域中找到了服务器的不正确的 SPN &lt;br /&gt;并将其发送到远程的域目标。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;可以使用 Net view 从命令行验证以下问题。&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;为测试 HOST/&lt;em&gt;ServerName&lt;/em&gt; SPN 并验证到正确的 NetBIOS SPN 的解析，在命令提示符下键入：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;net view \\&lt;/strong&gt;&lt;em&gt;NetBIOSName&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.microsoft.com/technet/images/note.gif" /&gt;注意&lt;br /&gt;如果为本地命名的主体 SPN &lt;br /&gt;而不是远程目标对名称进行解析，则身份验证将失败。在本地域中存在失效的或作废的对象时，这种情况很常见。经过 NetBIOS 和 FQDN &lt;br /&gt;的名称解析将解析到正确的远程目标，但是 SPN 查找将解析到本地主体。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;为了验证 HOST/&lt;em&gt;FQDN&lt;/em&gt; SPN（在林中应是唯一的），从命令提示符键入：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;net view \\&lt;/strong&gt;&lt;em&gt;FQDN&lt;/em&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;如果使用 NTLM 的 Net view 失败，则身份验证可能不是问题。为了验证 NTLM，从命令提示符键入：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;net view \\&lt;/strong&gt;&lt;em&gt;IPAddress&lt;/em&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;例如，如果使用 NetBIOS 解析一个本地域主体，则 Net view 将给出以下结果：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;如果 SPN 查找解析到错误的本地主体并且 Kerberos 身份验证失败，则 &lt;strong&gt;net view \\&lt;/strong&gt;&lt;em&gt;NetBIOSName&lt;/em&gt; &lt;br /&gt;将由于拒绝访问而失败。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;如果 SPN 查找解析到正确的远程主体并且 Kerberos 身份验证成功，则 &lt;strong&gt;net view \\&lt;/strong&gt;&lt;em&gt;FQDN&lt;/em&gt; &lt;br /&gt;将成功完成。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;如果使用 NTLM，则 &lt;strong&gt;net view \\&lt;/strong&gt;&lt;em&gt;IPAddress&lt;/em&gt; &lt;br /&gt;将成功完成。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证为 Kerberos 协议配置了应用程序&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;验证客户端应用程序支持 Kerberos 身份验证。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.microsoft.com/technet/images/note.gif" /&gt;注意&lt;br /&gt;Internet Explorer &lt;br /&gt;版本 5.5 及更高版本都支持 Kerberos 身份验证。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;验证为 Kerberos &lt;br /&gt;协议配置了客户端应用程序。这个过程将根据所使用的客户端应用程序而有所不同。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;有关的例子请参见&amp;#8220;附录 B&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证客户端使用的是 Kerberos 身份验证&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;为了验证客户端使用 Kerberos 身份验证来验证服务，在域用户帐户下使用客户端身份验证连接到此服务。（Kerberos &lt;br /&gt;身份验证只能在域用户帐户下进行，而不能在本地计算机用户帐户下进行。）&lt;/p&gt;&lt;br /&gt;&lt;p&gt;即使可以成功地连接，此连接也可能在 NTLM 上发生。因此，通过以下方式验证使用的是 Kerberos 身份验证数据包：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;为 NTLM 成功审核检查中间层服务器上的安全日志。有关启用审核和使用安全日志的更多信息，请参见&amp;#8220;附录 &lt;br /&gt;A：诊断工具&amp;#8221;中的&amp;#8220;安全事件日志&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;在连接到服务器之前使用 Kerberos Tray 清除票证，然后观察票证以找到一个连接到服务器的票证。更多信息请参见&amp;#8220;附录 &lt;br /&gt;A：诊断工具&amp;#8221;中的&amp;#8220;Kerberos Tray&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;使用网络监视器观察在 Kerberos 端口 88 上从客户端到域控制器的流量。如果拥有一个 Kerberos &lt;br /&gt;分析程序，则可以很容易地观察流量并从流量中找出错误消息。此外，从域控制器到客户端的较大的流量表示一个成功的 Kerberos 连接。更多信息请参见&amp;#8220;附录 &lt;br /&gt;A：诊断工具&amp;#8221;中的&amp;#8220;网络监视器&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;有关使用审核、调试输出和网络跟踪对 Kerberos 身份验证进行故障诊断的更多信息，请参见&amp;#8220;故障诊断 Kerberos 错误&amp;#8221;白皮书，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkID=27176"&gt;http://go.microsoft.com/fwlink/?LinkID=27176&lt;/a&gt;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果使用 Kerberos 协议建立了连接，确保用户具有访问服务器的权限。如果用户不具有此权限，则可能会收到类似&amp;#8220;用户 &lt;br /&gt;&lt;em&gt;domain&lt;/em&gt;\&lt;em&gt;UserName&lt;/em&gt; 不具有查看&lt;em&gt;资源&lt;/em&gt;的权限&amp;#8221;或&amp;#8220;拒绝 &lt;br /&gt;&lt;em&gt;domain&lt;/em&gt;\&lt;em&gt;UserName&lt;/em&gt; 访问&amp;#8221;的错误。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果使用以下方式建立连接：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;Kerberos 协议，转到&amp;#8220;清单 3 &amp;#8212; 中间层&amp;#8221;以继续诊断问题。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;NTLM，则两种可能的原因是：&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;系统尝试使用 Kerberos 协议进行身份验证，但是返回了一条&amp;#8220;帐户不在数据库中&amp;#8221;错误消息或相关的错误消息。这样，系统将尝试使用 NTLM &lt;br /&gt;进行身份验证。Windows Server 2003 和 Windows 2000 使用一种名为 Negotiate (SPNEGO) XP 的算法以及 &lt;br /&gt;Windows 来协商使用哪种身份验证协议。尽管 Kerberos 协议是默认协议，但是如果默认协议失败，Negotiate 将尝试 NTLM。有关故障诊断 &lt;br /&gt;Kerberos 错误的更多信息，请参见&amp;#8220;故障诊断 Kerberos 错误&amp;#8221;白皮书，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkID=27176"&gt;http://go.microsoft.com/fwlink/?LinkID=27176&lt;/a&gt;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;调用 Negotiate 将返回 NTLM &lt;br /&gt;作为唯一可用的协议。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;如果发现仍然在使用 NTLM 身份验证，或者在应该使用 Kerberos 身份验证的情况下没有尝试 Kerberos &lt;br /&gt;身份验证，请联系&amp;#8220;产品支持服务&amp;#8221;以帮助诊断问题。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;清单 3 &amp;#8212; 中间层&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果中间层服务使用 NTLM 来验证下一项服务，则通常会收到类似如下的错误：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;零用户登录失败&lt;/p&gt;&lt;br /&gt;&lt;p&gt;NT AUTHORITY\ANONYMOUS 用户登录失败&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果已验证了每台计算机使用的都是 Kerberos &lt;br /&gt;协议，则此身份验证问题的一种可能的原因是没有为委派正确地配置中间层服务。在这种情况下，通常会收到类似如下的错误：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;UserName&lt;/em&gt; 登录失败&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;中间层：配置服务以模仿用户&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table id="EA1AE" class="dataTable" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;thead&gt;&lt;br /&gt;&lt;tr class="stdHeader" valign="top"&gt;&lt;br /&gt;&lt;td id="colEC1AE" width="36%"&gt;任务&lt;/td&gt;&lt;br /&gt;&lt;td id="colEG1AE" width="32%"&gt;过程&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;" id="colEK1AE" width="32%"&gt;完成的数据/执行人&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;验证中间层服务和服务器支持 Kerberos &lt;br /&gt;协议。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt; &lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;从命令行提示符：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;验证为中间层服务注册了 &lt;br /&gt;SPN。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;在命令提示符下键入：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;setspn &amp;#8211;L&lt;/strong&gt; &lt;em&gt;帐户&lt;/em&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;其中&lt;em&gt;帐户&lt;/em&gt;是服务在其下运行的帐户的名称。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;验证存在服务帐户的以下两个 SPN：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;一个是 &lt;em&gt;ServiceClass&lt;/em&gt;/&lt;em&gt;Host&lt;/em&gt;:&lt;em&gt;Port&lt;/em&gt; 的 &lt;br /&gt;SPN&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;一个是 &lt;em&gt;ServiceClass&lt;/em&gt;/&lt;em&gt;FQDN&lt;/em&gt; 的 &lt;br /&gt;SPN&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;详细的指导请参见&amp;#8220;验证中间层服务帐户的 SPN&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;有关的例子请参见&amp;#8220;附录 B&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;从&amp;#8220;Active Directory 用户和计算机&amp;#8221;：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;验证为中间层服务配置了委派。（注意：如果按顺序完成以上清单，则此任务已在 Active Directory &lt;br /&gt;清单中完成。）&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;如果中间层服务使用的是计算机帐户：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;右键单击计算机帐户，然后单击&amp;#8220;&lt;strong&gt;属性&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;如果此帐户在 Windows 2000 &lt;br /&gt;功能级域中，验证选中了&amp;#8220;&lt;strong&gt;帐户可以委派其他帐户&lt;/strong&gt;&amp;#8221;选项。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;如果此帐户在 Windows Server 2003 &lt;br /&gt;功能级域中，配置&amp;#8220;&lt;strong&gt;委派&lt;/strong&gt;&amp;#8221;选项卡上的选项。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;如果中间层服务使用的是域用户帐户：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;右键单击服务帐户，然后单击&amp;#8220;&lt;strong&gt;属性&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;如果此服务帐户在 Windows 2000 &lt;br /&gt;功能级域中，验证选中了&amp;#8220;&lt;strong&gt;帐户&lt;/strong&gt;&amp;#8221;选项卡上的&amp;#8220;&lt;strong&gt;帐户可以委派其他帐户&lt;/strong&gt;&amp;#8221;选项。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;如果此服务在 Windows Server 2003 &lt;br /&gt;功能级域中，配置&amp;#8220;&lt;strong&gt;委派&lt;/strong&gt;&amp;#8221;选项卡上的各个选项。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;详细的指导请参见&amp;#8220;验证中间层服务帐户的委派&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;有关的例子请参见&amp;#8220;附录 B&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;从域安全策略组策略（如果完成了 Active Directory 清单，则已完成）或本地安全策略：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;验证中间层服务具有以下两种权限之一：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;作为操作系统的一部分&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;在身份验证之后模仿客户端&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;单击&amp;#8220;&lt;strong&gt;本地策略&lt;/strong&gt;&amp;#8221;，然后单击&amp;#8220;&lt;strong&gt;用户权限分配&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;详细的指导请参见&amp;#8220;验证中间层服务权限&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;验证已授权用户访问中间层服务器上的所需的资源。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;验证为模仿配置了中间层服务。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;有关的例子请参见&amp;#8220;附录 B&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;验证中间层服务在连接到下一台服务器之前模仿用户。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;更多信息请参见&amp;#8220;验证中间层服务模仿用户&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;?&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div class="dataTableBottomMargin"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 20 中间层服务支持 Kerberos 协议" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd20.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 20 中间层服务支持 Kerberos 协议&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证中间层支持 Kerberos 协议&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;验证每个中间层服务或服务器都支持 Kerberos 协议。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证中间层的 SPN&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;验证为每个中间层服务帐户都注册了一个 SPN。（注意：如果按顺序完成前面的全部清单，则此任务已在 Active Directory 清单中完成。）&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果中间层服务作为本地系统或网络服务运行，则不需要手动设置任何 SPN。这样，由于所有的 SPN 都将自动设置，所以不需要验证是否正确地设置了 &lt;br /&gt;SPN。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证为服务帐户设置了 SPN&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;在命令提示符下键入：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;setspn &amp;#8211;L&lt;/strong&gt;&lt;em&gt;帐户&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;其中&lt;em&gt;帐户&lt;/em&gt;是服务帐户的名称。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;应该至少列出两个 SPN，这是因为为了使委派正常工作，必须存在以下两个服务帐户的 SPN：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;ServiceClass&lt;/em&gt;&lt;strong&gt;/&lt;/strong&gt;&lt;em&gt;Host:Port&lt;/em&gt;，其中 &lt;em&gt;ServiceClass&lt;/em&gt; &lt;br /&gt;是适当的服务类，&lt;em&gt;Host&lt;/em&gt; 是主机的名称，&lt;em&gt;Port&lt;/em&gt; 是运行服务的端口。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;ServiceClass&lt;/em&gt;&lt;strong&gt;/&lt;/strong&gt;&lt;em&gt;FQDN&lt;/em&gt;，其中 &lt;em&gt;FQDN&lt;/em&gt; &lt;br /&gt;是主机的完全合格域名。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;疑难解答&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果没有列出任何 SPN 或缺少一个 SPN，则使用 &lt;strong&gt;setspn &amp;#8211;A&lt;/strong&gt; 命令添加适当的 SPN。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果列出了重复的 SPN，则使用 Setspn 工具重命名或删除重复的 SPN。可以使用 Ldifde 来查询全局目录以确保没有重复的 SPN。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;有关常见方案的例子请参见&amp;#8220;附录 B&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证域功能级&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果配置的是约束委派，则需要验证域控制器在 Windows Server 2003 功能级上操作。（只有约束委派才需要此步骤。）&lt;/p&gt;&lt;br /&gt;&lt;p&gt;注意：如果按顺序完成前面的全部清单，则此任务已在 Active Directory 清单中完成。&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 21 Windows Server 2003 域功能级" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd21.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 21 Windows Server 2003 域功能级&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.microsoft.com/technet/images/important.gif" /&gt;重要&lt;br /&gt;Windows 2000 &lt;br /&gt;不支持约束委派。由于不受限的委派会降低安全性，所以应避免在 Windows 2000 环境中使用委派。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;要验证域控制器的功能级&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;打开&amp;#8220;Active Directory 用户和计算机&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;右键单击 &lt;em&gt;DomainName&lt;/em&gt;，然后单击&amp;#8220;&lt;strong&gt;属性&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;验证在&amp;#8220;&lt;strong&gt;域功能级&lt;/strong&gt;&amp;#8221;下列出了 Windows Server 2003。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证中间层服务帐户的委派&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;注意：如果按顺序完成前面的全部清单，则此任务已在 Active Directory 清单中完成。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;验证为委派信任此方案中的每个中间层服务帐户。如果没有为委派信任此中间层服务帐户，则将收到类似如下的错误信息：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;零用户登录失败&lt;/p&gt;&lt;br /&gt;&lt;p&gt;NT AUTHORITY\ANONYMOUS 用户登录失败&lt;/p&gt;&lt;br /&gt;&lt;p&gt;尽管在 客户端和中间层服务之间或中间层服务和后端服务之间可以使用 Kerberos &lt;br /&gt;协议，但是如果没有为委派信任此中间层服务，则此中间层服务将不具有客户端的 TGT。这样，身份验证将退回到 &lt;br /&gt;NTLM。由于中间层服务不具有网络凭据（即用户的密码），所以它将成为零用户。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;有关的例子请参见&amp;#8220;附录 B&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;服务在计算机帐户下运行&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果服务在计算机帐户下运行，则需要为委派的服务器配置此计算机帐户。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;为了验证为委派信任中间层服务器计算机帐户&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;打开&amp;#8220;Active Directory 用户和计算机&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;找到中间层服务器的计算机帐户。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;右键单击此帐户，然后单击&amp;#8220;&lt;strong&gt;属性&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;如果此计算机帐户在 Windows 2000 功能级域中，应该选中&amp;#8220;&lt;strong&gt;常规&lt;/strong&gt;&amp;#8221;选项卡上的&amp;#8220;&lt;strong&gt;信任计算机作为委派&lt;/strong&gt;&amp;#8221;选项。（参见图 &lt;br /&gt;22。）&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 22 为委派信任功能级 Windows 2000 域计算机帐户" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd22.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 22 为委派信任功能级 Windows 2000 域计算机帐户&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;如果此计算机帐户在 Windows Server 2003 功能级域中，单击&amp;#8220;&lt;strong&gt;委派&lt;/strong&gt;&amp;#8221;选项卡。&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 23 没有为委派信任 Windows Server 2003 功能级域计算机帐户" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd23.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 23 没有为委派信任 Windows Server 2003 功能级域计算机帐户&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;在&amp;#8220;&lt;strong&gt;委派&lt;/strong&gt;&amp;#8221;选项卡上，如果选中了&amp;#8220;&lt;strong&gt;不信任此计算机来委派&lt;/strong&gt;&amp;#8221;，则选择以下两个&amp;#8220;&lt;strong&gt;信任&lt;/strong&gt;&amp;#8221;选项之一：&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;要将帐户配置为使用不受限的委派，选择&lt;strong&gt;信任此计算机来委派任何服务（仅 Kerberos）&lt;/strong&gt;。不推荐选择此选项。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;要将帐户配置为使用受限的委派，选择&amp;#8220;&lt;strong&gt;仅信任此计算机来委派指定服务&lt;/strong&gt;&amp;#8221;。通过选择以下两个选项之一来配置协议转换：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;要将帐户配置为使用约束委派而不进行协议转换，选择&amp;#8220;&lt;strong&gt;仅使用 Kerberos&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;要将帐户配置为使用约束委派并且进行协议转换，选择&amp;#8220;&lt;strong&gt;使用任意身份验证协议&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.microsoft.com/technet/images/note.gif" /&gt;注意&lt;br /&gt;在使用约束委派时，确认适当的 SPN &lt;br /&gt;在此帐户可以向其提交委派凭据列表的服务之内。这些 SPN 应该是后端服务的 SPN。前面曾经提到过，SPN 本身由三个信息段（即 &lt;br /&gt;ServiceClass/Host:Port）组成，其中：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;ServiceClass&lt;/em&gt; 是 SPN 的服务类。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;Host&lt;/em&gt; 是 SPN 所属的计算机。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;Port&lt;/em&gt; 是注册 SPN &lt;br /&gt;的服务在其上运行的端口。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;服务在域用户帐户下运行&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果服务在域用户帐户下运行，则需要为委派配置服务帐户。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;为了验证为委派信任了中间层服务帐户&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;打开&amp;#8220;Active Directory 用户和计算机&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;定位到所要配置的帐户，右键单击此帐户，然后单击&amp;#8220;&lt;strong&gt;属性&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;如果配置的帐户在 Windows 2000 功能级域中，单击&amp;#8220;&lt;strong&gt;帐户&lt;/strong&gt;&amp;#8221;选项卡。&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 24 为委派信任服务帐户" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd24.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 24 为委派信任服务帐户&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;在&amp;#8220;&lt;strong&gt;帐户选项&lt;/strong&gt;&amp;#8221;框中，确认选中了&amp;#8220;&lt;strong&gt;敏感帐户，不能被委派&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;如果此服务帐户在 Windows Server 2003 功能级域中，单击&amp;#8220;&lt;strong&gt;委派&lt;/strong&gt;&amp;#8221;选项卡。&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 25 不使用协议转换的服务帐户" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd25.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 25 不使用协议转换的服务帐户&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;在&amp;#8220;&lt;strong&gt;委派&lt;/strong&gt;&amp;#8221;选项卡上，选择以下两个&amp;#8220;&lt;strong&gt;信任&lt;/strong&gt;&amp;#8221;选项之一：&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;要将此帐户配置为使用不受限的委派，选择&amp;#8220;&lt;strong&gt;信任此用户来委派任何服务（仅 Kerberos）&lt;/strong&gt;&amp;#8221;。不推荐选择此选项。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;要将此帐户配置为使用受限的委派，选择&amp;#8220;&lt;strong&gt;仅信任此用户来委派指定服务&lt;/strong&gt;&amp;#8221;。通过选择以下两个选项之一来配置协议转换：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;要将此帐户配置为使用约束委派而不进行协议转换，选择&amp;#8220;&lt;strong&gt;仅使用 Kerberos&lt;/strong&gt;&amp;#8221;。（参见图 25。）&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;要将帐户配置为使用约束委派并且进行协议转换，选择&amp;#8220;&lt;strong&gt;使用任意身份验证协议&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.microsoft.com/technet/images/note.gif" /&gt;注意&lt;br /&gt;在使用约束委派时，确认适当的 SPN &lt;br /&gt;在此帐户可以向其提交委派凭据列表的服务之内。这些 SPN 应该是后端服务的 SPN。前面曾经提到过，SPN 本身由三个信息段（即 &lt;br /&gt;ServiceClass/Host:Port）组成，其中：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;ServiceClass&lt;/em&gt; 是 SPN 的服务类。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;Host&lt;/em&gt; 是 SPN 所属的计算机。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;Port&lt;/em&gt; 是注册 SPN &lt;br /&gt;的服务在其上运行的端口。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证中间层服务权限&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;注意：如果使用域安全策略进行配置，在&amp;#8220;清单 1 &amp;#8212; Active Directory&amp;#8221;中对此过程进行了介绍。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;由于模仿另一个用户的能力是委派的一个主要部分，所以如果一个过程没有所需的权限，它将无法委派。因此，验证委派方案中的每个中间层服务都具有以下两种权限之一：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;作为操作系统的一部分（在 Windows 2000 或 Windows Server 2003 中可用）&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;在身份验证之后模仿一个客户端（在 Windows Server 2003 中新增）&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;这两种权限都给予一个帐户模仿另一个帐户的能力。&amp;#8220;在身份验证之后模仿一个客户端&amp;#8221;权限与&amp;#8220;作为操作系统的一部分&amp;#8221;权限相似，只是前者不能进行远程访问。即第一种权限只允许一个过程在身份验证之后进行模仿，而&amp;#8220;作为操作系统的一部分&amp;#8221;权限则允许一个过程在身份验证之前进行模仿。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果使用组策略配置这些权限，则需要验证在域控制器上正确配置了策略。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;默认情况下，为本地系统帐户分配&amp;#8220;作为操作系统的一部分&amp;#8221;权限。因此，如果中间层服务在本地系统帐户下运行，则不需要在安全策略中修改用户权限的分配。对于所有其他的帐户，需要为其配置&amp;#8220;作为操作系统的一部分&amp;#8221;或&amp;#8220;在身份验证之后模仿一个客户端&amp;#8221;权限。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果使用了协议转换，中间层服务常常没有关于进来的用户身份的信息&amp;#8212;&amp;#8212;也就是说，进来的用户在身份验证时所使用的协议可能没有提供与 Kerberos &lt;br /&gt;身份验证相同的一组完整的凭据。因此，需要为这些中间层服务分配&amp;#8220;作为操作系统的一部分&amp;#8221;权限。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;例如，尽管运行 IIS 的中间层服务可能会将浏览 Web 页面的权限授予传入的用户，但是它并没有正式对此用户进行身份验证。因此，运行 IIS &lt;br /&gt;的中间层服务必须具有&amp;#8220;作为操作系统的一部分&amp;#8221;权限，以便在一个用户请求 Web 服务或后端服务器时模仿此用户。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;这样，应该为第一个中间层服务配置&amp;#8220;作为操作系统的一部分&amp;#8221;用户权限设置。然而，由于&amp;#8220;在身份验证之后模仿一个客户端&amp;#8221;权限不能进行远程访问，所以应该为任何将在初始的身份验证之后被访问的中间层服务配置&amp;#8220;在身份验证之后模仿一个客户端&amp;#8221;权限（如果使用的是 &lt;br /&gt;Windows Server 2003）。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;为了验证服务帐户具有适当的权限&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;通过依次单击&amp;#8220;&lt;strong&gt;开始&lt;/strong&gt;&amp;#8221;、&amp;#8220;&lt;strong&gt;程序&lt;/strong&gt;&amp;#8221;、&amp;#8220;&lt;strong&gt;管理工具&amp;#8221;&lt;/strong&gt;和&amp;#8220;&lt;strong&gt;本地安全策略&lt;/strong&gt;&amp;#8221;，打开本地安全策略。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.microsoft.com/technet/images/note.gif" /&gt;注意&lt;br /&gt;如果域控制器实施了策略，则遵循步骤 1 &lt;br /&gt;中的指导。如果域控制器实施了策略，则必须打开域安全策略或组策略。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;单击&amp;#8220;&lt;strong&gt;本地策略&lt;/strong&gt;&amp;#8221;，然后单击&amp;#8220;&lt;strong&gt;用户权限分配&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;例如，图 26 显示了为 Administrators 和 SERVICE 配置了&amp;#8220;在身份验证之后模仿一个客户端&amp;#8221;权限。&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 26 本地安全设置中的用户权限分配" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd26.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 26 本地安全设置中的用户权限分配&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;为了为服务帐户设置&amp;#8220;在身份验证之后模仿一个客户端&amp;#8221;权限&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;通过依次单击&amp;#8220;&lt;strong&gt;开始&lt;/strong&gt;&amp;#8221;、&amp;#8220;&lt;strong&gt;程序&lt;/strong&gt;&amp;#8221;、&amp;#8220;&lt;strong&gt;管理工具&lt;/strong&gt;&amp;#8221;和&amp;#8220;&lt;strong&gt;本地安全策略&lt;/strong&gt;&amp;#8221;，打开域安全策略。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.microsoft.com/technet/images/note.gif" /&gt;注意&lt;br /&gt;如果域控制器实施了策略，则遵循步骤 1 &lt;br /&gt;中的指导。如果域控制器实施了策略，则必须打开域安全策略或组策略。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;单击&amp;#8220;&lt;strong&gt;本地策略&lt;/strong&gt;&amp;#8221;，再单击&amp;#8220;&lt;strong&gt;用户权限分配&lt;/strong&gt;&amp;#8221;，然后单击&amp;#8220;&lt;strong&gt;在身份验证之后模仿一个客户端&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;添加所有需要委派凭据的帐户（例如 IIS 帐户）。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证用户身份验证&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;验证已授权用户访问中间层服务器上的所需的资源。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证中间层服务配置&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;验证为模仿配置了此方案中的每个中间层服务。根据服务的不同也许有必须配置的设置或元数据，以便中间层服务使用 Kerberos 协议。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.microsoft.com/technet/images/note.gif" /&gt;注意&lt;br /&gt;可以将 IIS 配置为同时使用 &lt;br /&gt;Negotiate 和 NTLM。更多信息参见 Microsoft 知识库中的&amp;#8220;HOW TO：将 IIS 配置为同时支持 Kerberos 和 NTLM &lt;br /&gt;身份验证&amp;#8221;，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkId=24925"&gt;http://go.microsoft.com/fwlink/?LinkId=24925&lt;/a&gt;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;有关的例子请参见&amp;#8220;附录 B&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证中间层服务模仿用户&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;验证中间层服务在连接到下一个服务之前模仿用户。例如，ASP.NET 应用程序或 COM+ 应用程序可以在 &lt;em&gt;domain\UserName&lt;/em&gt; &lt;br /&gt;下运行以代替模仿真正的用户，并且可以在 &lt;em&gt;domain&lt;/em&gt;\&lt;em&gt;UserName&lt;/em&gt; 下连接到后端服务器。这会造成类似如下的错误：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;domain&lt;/em&gt;\&lt;em&gt;UserName&lt;/em&gt;登录失败&lt;/p&gt;&lt;br /&gt;&lt;p&gt;拒绝 &lt;em&gt;domain&lt;/em&gt;\&lt;em&gt;UserName&lt;/em&gt; 访问。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;清单 4 &amp;#8212; 后端&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;后端：为 Kerberos 身份验证配置服务。&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table id="EQPAG" class="dataTable" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;thead&gt;&lt;br /&gt;&lt;tr class="stdHeader" valign="top"&gt;&lt;br /&gt;&lt;td id="colESPAG" width="34%"&gt;任务&lt;/td&gt;&lt;br /&gt;&lt;td id="colEWPAG" width="34%"&gt;过程&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;" id="colE1PAG" width="32%"&gt;完成的数据/执行人&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;从命令提示符：&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;验证为后端服务的服务帐户注册了 SPN。（注意：如果按顺序完成以上清单，则此任务已在 Active Directory &lt;br /&gt;清单中完成。）&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;在命令提示符下键入：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;setspn &amp;#8211;L&lt;/strong&gt; &lt;em&gt;帐户&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;其中&lt;em&gt;帐户&lt;/em&gt;是服务在其下运行的帐户的名称。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;验证存在服务帐户的以下两个 SPN：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;一个是 &lt;em&gt;ServiceClass&lt;/em&gt;/&lt;em&gt;Host&lt;/em&gt;:&lt;em&gt;Port&lt;/em&gt; 的 &lt;br /&gt;SPN&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;一个是 &lt;em&gt;ServiceClass&lt;/em&gt;/&lt;em&gt;FQDN&lt;/em&gt; 的 &lt;br /&gt;SPN&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;详细的指导请参见&amp;#8220;验证后端服务帐户的 SPN&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;有关的例子请参见&amp;#8220;附录 B&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;验证已授权用户访问后端服务器上的所需的资源。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;?&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;?&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div class="dataTableBottomMargin"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 27 后端服务器" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd27.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 27 后端服务器&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证后端服务帐户的 SPN&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;验证为方案中的每个后端服务帐户都注册了一个 SPN。（如果按顺序使用以上清单，则此任务已在 Active Directory 清单中完成。）&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果后端服务作为本地系统或网络服务运行，则不需要手动设置任何 SPN。这样，由于所有的 SPN 都将自动设置，所以不需要验证是否正确设置了 &lt;br /&gt;SPN。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证为服务帐户设置了一个 SPN&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;在命令提示符下键入：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;setspn &amp;#8211;L&lt;/strong&gt; &lt;em&gt;帐户&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;其中&lt;em&gt;帐户&lt;/em&gt;是后端服务在其下运行的帐户的名称。&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;验证存在使委派正常工作所需的以下两个后端服务帐户的 SPN：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;一个是 &lt;em&gt;ServiceClass&lt;/em&gt;&lt;strong&gt;/&lt;/strong&gt;&lt;em&gt;Host:Port&lt;/em&gt; 的 SPN，其中 &lt;em&gt;ServiceClass&lt;/em&gt; &lt;br /&gt;是适当的服务类，&lt;em&gt;Host&lt;/em&gt; 是主机的名称，&lt;em&gt;Port&lt;/em&gt; 是运行服务的端口。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;一个是 &lt;em&gt;ServiceClass&lt;/em&gt;&lt;strong&gt;/&lt;/strong&gt;&lt;em&gt;FQDN&lt;/em&gt; 的 SPN，其中 &lt;em&gt;FQDN&lt;/em&gt; &lt;br /&gt;是主机的完全合格域名。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;疑难解答&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果没有列出任何 SPN 或缺少一个 SPN，则使用 &lt;strong&gt;setspn &amp;#8211;A&lt;/strong&gt; 命令添加适当的 SPN。中间层服务需要以上两个 SPN &lt;br /&gt;以正确地对后端服务使用委派凭据。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果列出了重复的 SPN，则使用 Setspn 工具重命名或删除重复的 SPN。可以使用 Ldifde 来查询全局目录以确保没有重复的 SPN。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;有关的例子请参见&amp;#8220;附录 B&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证已授权用户访问后端服务器的资源&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;例如，如果后端服务器是 SQL Server，确保授权用户访问 SQL 数据库。如果没有对用户进行授权，可能会收到类似如下的错误：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;UserName&lt;/em&gt; 登录失败&lt;/p&gt;&lt;br /&gt;&lt;p&gt;拒绝 &lt;em&gt;UserName&lt;/em&gt; 访问&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.microsoft.com/technet/images/note.gif" /&gt;注意&lt;br /&gt;后端服务帐户不需要设置委派，这是因为它将身份验证到或将凭据委派到其他服务。&lt;/p&gt;&lt;br /&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#top"&gt;&lt;img border="0" alt="返回页首" src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" width="7" height="9" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="EYUAG"&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;总结&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;本白皮书讨论了对 Kerberos 委派问题进行故障诊断的各种方法。前面各节详细介绍了在设置这些方案时经常出现的错误以及解决这些问题的方式。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;由于最常见的 Kerberos 委派的使用是使用 IIS 和 SQL 的委派方案，所以&amp;#8220;附录 B&amp;#8221;对 IIS/SQL 委派方案进行了更详细的介绍。&lt;/p&gt;&lt;br /&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#top"&gt;&lt;img border="0" alt="返回页首" src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" width="7" height="9" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="E3UAG"&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;附录 A：诊断工具&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;一些用于诊断 Kerberos 错误的工具（例如事件查看器和网络监视器）与用于其他与网络相关的或身份验证的问题的工具相同。其他的特定工具（例如 &lt;br /&gt;Kerberos List 和 Kerberos Tray）可以用于详细的特定于 Kerberos 的信息。本节提供了有关故障诊断工具的信息。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;事件查看器&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;在 Windows Server 2003 和 Windows 2000 中都包括事件查看器。系统日志 XP 以及 Windows 和安全日志将包含 &lt;br /&gt;Kerberos 错误代码和其他与身份验证相关的事件。有关使用事件查看器进行故障诊断的更多信息，请参见 Microsoft 知识库的&amp;#8220;HOW TO：在 &lt;br /&gt;Windows Server 2003 中使用事件查看器诊断系统问题&amp;#8221;，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkId=23046"&gt;http://go.microsoft.com/fwlink/?LinkId=23046&lt;/a&gt;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;安全事件日志&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;安全事件日志中包含可以说明 Kerberos &lt;br /&gt;身份验证是否发生故障或使用的是否是其他身份验证协议的信息。用户的特定登录/注销事件的详细信息将显示所使用的身份验证协议。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;尽管推荐使用 Kerberos 身份验证，但是系统可能会在发生错误或故障时转到 NTLM。这种转换会引起更多的问题，这是因为用户将不会获得任何 &lt;br /&gt;Kerberos 票证并且可能无法访问 Kerberos 知道的服务或不具有在整个网络中进行单次登录的功能。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;NTLM 或 Kerberos 协议&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;怎样可以知道登录时使用的是 NTLM 还是 Kerberos 协议？所有在运行 Windows Server 2000 的计算机上进行的帐户登录都应该使用 &lt;br /&gt;Kerberos 2003 或 Windows 协议（或 Negotiate，可以表示使用了 Kerberos &lt;br /&gt;协议）。为了捕获这些事件，需要启用对成功的用户身份验证的帐户登录事件和计算机身份验证的登录事件的审核。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;#8220;登录类型&amp;#8221;域有助于确定哪种事件适用于登录尝试的类型。表 2 中列出了&amp;#8220;登录类型&amp;#8221;域中可能的值。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;表 2 登录类型&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table id="ERVAG" class="dataTable" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;thead&gt;&lt;/thead&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;2 &lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;Interactive（交互登录）&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;3 &lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;Network（通过网络访问系统）&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;4 &lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;Batch（作为批处理作业启动）&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;5 &lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;Service（由服务控制器启动的 Windows 服务）&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;6 &lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;Proxy NT or Windows（代理登录；在 Windows 2000 中未使用）&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;7 &lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;Unlock（解除对工作站的锁定）&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;8 &lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;NetworkCleartext（使用纯文本凭据的网络登录）&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;9 &lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;NewCredentials（由 RunAs 在使用 /netonly &lt;br /&gt;选项时使用）&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div class="dataTableBottomMargin"&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;如果安全日志显示使用的是 NTLM 并且存在与身份验证相关的问题，则需要通过使用本节中介绍的工具进行诊断。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;启用故障审核&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;默认情况下，Windows Server 2003 &lt;br /&gt;只记录成功的审核。通常，这种默认设置将妨碍查找身份验证问题，这是因为在日志中很多失败的身份验证尝试都没有显示。启用故障审核将显示失败的身份验证，并因此会提供一些有关错误源的额外信息。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;为了启用故障审核&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;通过依次单击&amp;#8220;&lt;strong&gt;开始&lt;/strong&gt;&amp;#8221;、&amp;#8220;&lt;strong&gt;程序&lt;/strong&gt;&amp;#8221;、&amp;#8220;&lt;strong&gt;管理工具&lt;/strong&gt;&amp;#8221;和&amp;#8220;&lt;strong&gt;本地安全策略&lt;/strong&gt;&amp;#8221;，打开本地安全策略。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.microsoft.com/technet/images/note.gif" /&gt;注意&lt;br /&gt;此过程假定域控制器没有实施审核策略。如果情况是这样，则必须在域控制器上打开域安全策略或合适的组策略。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;单击&amp;#8220;&lt;strong&gt;本地策略&lt;/strong&gt;&amp;#8221;，然后单击&amp;#8220;&lt;strong&gt;审核策略&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;右键单击&amp;#8220;&lt;strong&gt;审核帐户登录事件&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;4.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;选择&amp;#8220;&lt;strong&gt;定义这些策略设置&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;5.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;在&amp;#8220;&lt;strong&gt;审核这些尝试：&lt;/strong&gt;&amp;#8221;下确保选中了&amp;#8220;&lt;strong&gt;成功&lt;/strong&gt;&amp;#8221;和&amp;#8220;&lt;strong&gt;失败&lt;/strong&gt;&amp;#8221;选项。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;6.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;单击&amp;#8220;&lt;strong&gt;确定&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;7.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;重复步骤 3 到 6 以使&amp;#8220;&lt;strong&gt;审核登录事件&lt;/strong&gt;&amp;#8221;记录成功和失败事件。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;8.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;如果更改是在域控制器上的域安全策略中进行的，在命令提示符下对客户端计算机运行 &lt;strong&gt;gpupdate &lt;br /&gt;/force&lt;/strong&gt;，以传播策略的更改。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Klist.exe: Kerberos List&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Kerberos List 是一个命令行工具，可以用来查看和删除已授予当前的登录会话的 Kerberos 票证。为了使用 Kerberos List &lt;br /&gt;来查看票证，必须在一台是 Kerberos 领域的成员的计算机上运行此工具。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;当从客户端运行 Kerberos List 时，将显示以下信息：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;Windows 中的 Kerberos 密钥分发中心 (KDC) 的票证授权票证 (TGT)。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;UNIX 上的 Ksserver 的票证授权票证 (TGT)。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;如何安装 Kerberos List&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Windows Server 2003、Windows 2000.XP 和 Windows 都支持 Kerberos List&lt;/p&gt;&lt;br /&gt;&lt;p&gt;可以从 Microsoft 下载中心下载 Klist.exe 和其他&amp;#8220;Windows Server 2003 资源工具包工具&amp;#8221;，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkID=16544"&gt;http://go.microsoft.com/fwlink/?LinkID=16544&lt;/a&gt;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;如何使用 Kerberos List&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Kerberos List 是一个命令行工具，此工具使用以下语法：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;klist [tickets | tgt | purge] [-?]&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;要运行 Kerberos List：&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;依次单击&amp;#8220;&lt;strong&gt;开始&lt;/strong&gt;&amp;#8221;、&amp;#8220;&lt;strong&gt;所有程序&lt;/strong&gt;&amp;#8221;、&amp;#8220;&lt;strong&gt;附件&lt;/strong&gt;&amp;#8221;和&amp;#8220;&lt;strong&gt;命令提示符&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;在命令提示符窗口中，键入：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;klist.exe&lt;/strong&gt;&lt;em&gt;参数&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;然后按 ENTER 键。 &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Kerberos List 的参数&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;票证&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;列出在登录之后身份验证到的服务的当前缓存的票证。&amp;#8220;&lt;strong&gt;票证&lt;/strong&gt;&amp;#8221;可以用于验证为用户发出了一个 Kerberos &lt;br /&gt;票证。在一个身份验证请求之后，应该出现多个票证。此命令还将显示有关获取的票证的详细信息，包括这些票证发布到的服务器、有效期和票证选项。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;#8220;&lt;strong&gt;票证&lt;/strong&gt;&amp;#8221;显示所有缓存票证的以下属性： &lt;/p&gt;&lt;br /&gt;&lt;table id="EV2AG" class="dataTable" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;thead&gt;&lt;br /&gt;&lt;tr class="stdHeader" valign="top"&gt;&lt;br /&gt;&lt;td id="colEX2AG" width="30%"&gt;选项&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;" id="colE22AG" width="70%"&gt;描述&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;结束时间&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;票证失效的时间。在票证经过这段时间之后，将不能用于身份验证到服务。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;KerbTicket 加密类型&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;用于加密 Kerberos 票证的加密类型。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;更新时间&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;更新的票证的最大生存期（参见下面的表中的 &lt;br /&gt;TicketFlags）。为了继续使用此票证，必须在到达已建立的结束时间之前以及在 RenewUntil &lt;br /&gt;中建立的过期数据之前对其进行更新。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;服务器&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;票证的服务器和域。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div class="dataTableBottomMargin"&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;tgt&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;列出初始的 Kerberos 票证授权票证 (TGT)。&lt;strong&gt;tgt&lt;/strong&gt;显示了当前缓冲的票证的以下属性：&lt;/p&gt;&lt;br /&gt;&lt;table id="E23AG" class="dataTable" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;thead&gt;&lt;br /&gt;&lt;tr class="stdHeader" valign="top"&gt;&lt;br /&gt;&lt;td id="colE43AG" width="26%"&gt;选项&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;" id="colEB4AG" width="74%"&gt;描述&lt;/td&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;AltTargetDomainName&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;为生成此票证的 InitializeSecurityContext 提供的名称，通常是一个 &lt;br /&gt;SPN。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;DomainName&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;服务的域名。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;结束时间&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;票证失效的时间。在票证经过结束时间之后，将不能用于身份验证到服务。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;FullServiceName&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;服务的帐户主体的规范名称。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;KeyExpirationTime&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;来自 KDC 应答的过期时间。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;RenewUnitil&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;更新的票证的最大生存期（参见 TicketFlags）。为了继续使用一个票证，必须对其进行更新。必须在结束时间和 &lt;br /&gt;RenewUntil 中设置的过期时间之前更新票证。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;ServiceName&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;TGT 是密钥分发中心 (KDC）服务的票证。TGT 的服务名称是 krbtgt。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;StartTime&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;票证生效的时间。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;TargetDomainName&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;对于跨领域的票证，此领域是票证有效的领域，而不是发出票证的领域。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;TargetName&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;请求票证的服务名称。这是目录中的一个帐户的 &lt;strong&gt;servicePrincipalName&lt;/strong&gt; &lt;br /&gt;属性的名称。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="record" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;TicketFlags&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;在当前的票证上设置的十六进制的 Kerberos 票证标记。Kerberos Tray &lt;br /&gt;在&amp;#8220;&lt;strong&gt;标志&lt;/strong&gt;&amp;#8221;选项卡上显示了这些标志。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr class="evenRecord" valign="top"&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;TimeSkew&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="border-right-color: rgb(204, 204, 204); border-right-width: 1px; border-right-style: solid;"&gt;&lt;br /&gt;&lt;p class="lastInCell"&gt;票证的客户端计算机和服务器计算机之间的报告时间之差。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div class="dataTableBottomMargin"&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;清除&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;删除用户所拥有的所有 Kerberos &lt;br /&gt;票证。&amp;#8220;&lt;strong&gt;票证&lt;/strong&gt;&amp;#8221;将破坏所有已缓存的票证，所以谨慎使用此选项。此选项可能会使用户不能再身份验证到资源。如果出现这种情况，则必须注销，然后重新登录。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;-?&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;显示命令行帮助。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Kerbtray.exe: Kerberos Tray&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Kerberos Tray 是一个图形用户界面工具，此工具将显示运行 Kerberos 版本 5 身份验证协议的 Microsoft &lt;br /&gt;实现的计算机的票证信息。Windows Server 2003、Windows XP 和 Windows 2000 都支持 Kerberos Tray。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;可以通过使用位于桌面的通知区域中的 Kerberos Tray 工具图标来查看和清除票证缓存。通过将光标放置在此图标上，可以查看初始的票证授权票证 &lt;br /&gt;(TGT) 过期前还有多少时间。此图标还将在本地安全机构 (LSA) 更新票证之前以小时为单位变化。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;如何安装 Kerberos Tray&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Kerberos Tray 包含在&amp;#8220;Windows Server 2003 资源工具包&amp;#8221;和&amp;#8220;Windows 2000 资源工具包&amp;#8221;中。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;可以从 Microsoft 下载中心下载 Kerbtray.exe 和其他&amp;#8220;Windows Server 2003 资源工具包工具&amp;#8221;，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkID=16544"&gt;http://go.microsoft.com/fwlink/?LinkID=16544&lt;/a&gt;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;如何使用 Kerberos Tray&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;为运行 Kerberos Tray，双击 &lt;strong&gt;Kerbtray&lt;/strong&gt;文件。Kerbtray 图标将出现在通知区域中。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;为了在运行 Kerberos Tray 之后打开主 Kerbtray &lt;br /&gt;窗口，双击它在通知区域中的图标。将显示有关当前用户的所有票证的信息。在&amp;#8220;&lt;strong&gt;标志&lt;/strong&gt;&amp;#8221;选项卡中将显示每个票证的票证选项。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;为了清除票证，在通知区域中右键单击 Kerbtray 图标并单击&lt;strong&gt;清除票证&lt;/strong&gt;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Ldifde&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;可以使用 Ldifde 来创建、修改和删除运行 Windows Server 2003 或 Windows XP Professional &lt;br /&gt;的计算机上的目录对象。还可以使用 Ldifde 来扩展方案，将 Active Directory &lt;br /&gt;用户和组信息导出到其他应用程序或服务，以及使用来自其他目录服务的数据填充 Active Directory。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Ldifed.exe 位于域控制器上，但是不能复制到运行 Windows XP 和 Windows Server 2003 &lt;br /&gt;的客户端计算机或在这些计算机上使用。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Ldifed 提供了一种快速提取和显示一个林或域中特定 SPN 的方法。在以下情况下这将非常有用：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;在林中有多个对象具有相同的 HOST/NetBIOSname SPN，可能会造成 Kerberos 身份验证故障。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;在帐户上注册了多个（因此无效）MSSQL SPN。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;语法&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;ldifde&lt;/strong&gt; [-&lt;strong&gt;i&lt;/strong&gt;] [-&lt;strong&gt;f&lt;/strong&gt; &lt;em&gt;FileName&lt;/em&gt;] &lt;br /&gt;[-&lt;strong&gt;s&lt;/strong&gt; &lt;em&gt;ServerName&lt;/em&gt;] [-&lt;strong&gt;c&lt;/strong&gt; &lt;em&gt;String1&lt;/em&gt; &lt;em&gt;String2&lt;/em&gt;] &lt;br /&gt;[-&lt;strong&gt;v&lt;/strong&gt;] [-&lt;strong&gt;j&lt;/strong&gt; &lt;em&gt;Path&lt;/em&gt;] [-&lt;strong&gt;t&lt;/strong&gt; &lt;em&gt;PortNumber&lt;/em&gt;] &lt;br /&gt;[-&lt;strong&gt;d&lt;/strong&gt; &lt;em&gt;BaseDN&lt;/em&gt;] [-&lt;strong&gt;r&lt;/strong&gt; &lt;em&gt;LDAPFilter&lt;/em&gt;] [-&lt;strong&gt;p&lt;/strong&gt; &lt;em&gt;Scope&lt;/em&gt;] &lt;br /&gt;[-&lt;strong&gt;l&lt;/strong&gt; &lt;em&gt;LDAPAttributeList&lt;/em&gt;] [-&lt;strong&gt;o&lt;/strong&gt; &lt;em&gt;LDAPAttributeList&lt;/em&gt;] &lt;br /&gt;[-&lt;strong&gt;g&lt;/strong&gt;] [-&lt;strong&gt;m&lt;/strong&gt;] [-&lt;strong&gt;n&lt;/strong&gt;] [-&lt;strong&gt;k&lt;/strong&gt;] &lt;br /&gt;[-&lt;strong&gt;a&lt;/strong&gt; &lt;em&gt;UserDistinguishedName&lt;/em&gt; &lt;em&gt;Password&lt;/em&gt;] &lt;br /&gt;[-&lt;strong&gt;b&lt;/strong&gt; &lt;em&gt;UserName&lt;/em&gt; &lt;em&gt;Domain&lt;/em&gt; &lt;em&gt;Password&lt;/em&gt;] [-&lt;strong&gt;?&lt;/strong&gt;]&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;参数&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;-&lt;strong&gt;i&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;指定导入模式。如果没有指定，则默认的模式是导出。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;-&lt;strong&gt;f&lt;/strong&gt; &lt;em&gt;FileName&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;确定导入或导出的文件名。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;-&lt;strong&gt;s&lt;/strong&gt; &lt;em&gt;ServerName&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;指定执行导入或导出操作的域控制器。默认情况下，Ldifde 将在安装 Ldifde 的域控制器上运行。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;-&lt;strong&gt;c&lt;/strong&gt;&lt;em&gt;String1&lt;/em&gt;&lt;em&gt;String2&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;使用 &lt;em&gt;String2&lt;/em&gt; 代替所有出现的 &lt;em&gt;String1&lt;/em&gt;。此参数通常在从一个域将数据导入到另一个域并且导出域的可分辨名称 &lt;br /&gt;(&lt;em&gt;String1&lt;/em&gt;) 需要使用导入域的可分辨名称 (&lt;em&gt;String2&lt;/em&gt;) 来代替时使用。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;-&lt;strong&gt;v&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;设置详细的模式。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;-&lt;strong&gt;j&lt;/strong&gt; &lt;em&gt;Path&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;设置日志文件的位置。默认位置为当前路径。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;-&lt;strong&gt;t&lt;/strong&gt; &lt;em&gt;PortNumber&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;指定一个 LDAP 端口号。默认的 LDAP 端口是 389。全局的目录端口是 3268。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;-&lt;strong&gt;d&lt;/strong&gt; &lt;em&gt;BaseDN&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;设置数据导出的搜索库的可分辨名称。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;-&lt;strong&gt;r&lt;/strong&gt; &lt;em&gt;LDAPFilter&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;为数据导出创建一个 LDAP 搜索筛选器。例如，为了使用特定的姓氏导出所有用户，可以使用以下筛选器：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;-&lt;strong&gt;r (and(objectClass&lt;/strong&gt;=&lt;em&gt;User&lt;/em&gt;&lt;strong&gt;)(sn&lt;/strong&gt;=&lt;em&gt;Surname&lt;/em&gt;&lt;strong&gt;))&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;-&lt;strong&gt;p&lt;/strong&gt; &lt;em&gt;Scope&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;设置搜索范围。搜索范围选项是 Base、OneLevel 或 SubTree。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;-&lt;strong&gt;l&lt;/strong&gt; &lt;em&gt;LDAPAttributeList&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;设置在导出查询的结果中所返回属性的列表。如果省略了此参数，则返回所有属性。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;-&lt;strong&gt;o&lt;/strong&gt; &lt;em&gt;LDAPAttributeList&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;设置在导出查询的结果中所省略的属性的列表。此参数通常在从 Active Directory 导出对象然后将其导入到另一个遵循 LDAP &lt;br /&gt;的目录时使用。如果另一个目录不支持一些属性，则可以使用此选择从结果集中省略这些属性。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;-&lt;strong&gt;g&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;省略分页的搜索。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;-&lt;strong&gt;m&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;省略只应用于 Active Directory &lt;br /&gt;对象的属性。（例如，&lt;strong&gt;Object-Guid&lt;/strong&gt;、&lt;strong&gt;Object-Sid&lt;/strong&gt;、&lt;strong&gt;Pwd-Last-Set&lt;/strong&gt; 和 &lt;br /&gt;&lt;strong&gt;SAM-Account-Type&lt;/strong&gt; 属性。）&lt;/p&gt;&lt;br /&gt;&lt;p&gt;-&lt;strong&gt;n&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;省略二进制值的导出。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;-&lt;strong&gt;k&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;忽略导入操作期间的错误并继续进行。以下是忽略的错误的一个完整的列表：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;对象已是组的成员&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;违反对象类（即指定的对象类不存在），如果导入的对象没有其他属性&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;对象已存在&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;违反约束条件&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;属性或值已存在&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;没有这样的对象&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;-&lt;strong&gt;a&lt;/strong&gt; &lt;em&gt;UserDistinguishedName&lt;/em&gt; &lt;em&gt;Password&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;将命令设置为使用提供的 &lt;em&gt;UserDistinguishedName&lt;/em&gt; 和 &lt;em&gt;Password&lt;/em&gt; &lt;br /&gt;运行。默认情况下，此命令将使用当前登录到网络的用户的凭据运行。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;-&lt;strong&gt;b&lt;/strong&gt; &lt;em&gt;UserName&lt;/em&gt; &lt;em&gt;Domain&lt;/em&gt; &lt;em&gt;Password&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;将命令设置为使用提供的 &lt;em&gt;UserName&lt;/em&gt; &lt;em&gt;Domain&lt;/em&gt; &lt;em&gt;Password&lt;/em&gt; &lt;br /&gt;运行。默认情况下，此命令将使用当前登录到网络的用户的凭据运行。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;-&lt;strong&gt;?&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;显示命令菜单。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;示例&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;最初使用计算机帐户安装 SQL Server 以启动服务（从而获得了所需的 &lt;br /&gt;SPN）。随后，将配置一个域帐户来启动服务，这样就会出现身份验证问题。产生问题的原因可能是在多个对象上注册了 MSSQL SPN。以下命令将生成一个在林中注册了 &lt;br /&gt;MSSQL SPN 的对象的列表：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;LDIFDE &amp;#8211;f&lt;/strong&gt; &lt;em&gt;filename&lt;/em&gt;.txt &lt;strong&gt;&amp;#8211;t 3268 &amp;#8211;d &lt;br /&gt;&amp;#8220;DC=&lt;/strong&gt;&lt;em&gt;forest&lt;/em&gt;,&lt;strong&gt;DC=&lt;/strong&gt;&lt;em&gt;Root&lt;/em&gt;,&lt;strong&gt;DC=com&lt;/strong&gt;&amp;#8221; &lt;br /&gt;&lt;strong&gt;&amp;#8211;l&lt;/strong&gt; &lt;strong&gt;serviceprincipalname&lt;/strong&gt; &lt;strong&gt;&amp;#8211;r &amp;#8221;(serviceprincipalname=MSSQLSvc/*)&amp;#8221; &lt;br /&gt;&amp;#8211;p subtree&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;在这个例子中，参数的作用如下：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;-f &lt;/strong&gt;&lt;em&gt;filename&lt;/em&gt;.txt&lt;/p&gt;&lt;br /&gt;&lt;p&gt;将输出写入到指定的文件。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;-t 3268&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;可选参数，指定全局目录端口。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;-d &amp;#8220;DC=&lt;/strong&gt;&lt;em&gt;forest&lt;/em&gt;,&lt;strong&gt;DC=&lt;/strong&gt;&lt;em&gt;Root&lt;/em&gt;,&lt;strong&gt;DC=com&lt;/strong&gt;&amp;#8221;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;为搜索起始点使用所需的林或域的可分辨名称。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;-l serviceprincipalname&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;限制服务主体名称的输出。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;-r &amp;#8221;(serviceprincipalname=MSSQLSvc/*)&amp;#8221;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;将 SQL 服务指定为要查找的 SPN。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;-p subtree&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;将搜索范围设置为子树。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;网络监视器&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;可以使用网络监视器工具，通过捕获网络记录并随后检查跨网络发送的真正的 Kerberos 包，来获取比事件日志所提供的信息更详细的信息。 &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.microsoft.com/technet/images/note.gif" /&gt;注意&lt;br /&gt;有关网络监视器的完整信息，请参见 &lt;br /&gt;Microsoft TechNet 上的&amp;#8220;网络监视器&amp;#8221;，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkId=23049"&gt;http://go.microsoft.com/fwlink/?LinkId=23049&lt;/a&gt;。与网络监视器相关联的最佳做法和过程，请参见 &lt;br /&gt;Microsoft TechNet 上的&amp;#8220;清单：监视本地计算机上的网络流量&amp;#8221;，位于：&lt;a href="http://go.microsoft.com/fwlink/?linkid=23047"&gt;http://go.microsoft.com/fwlink/?linkid=23047&lt;/a&gt;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;网络监视器的完整版本包含在 Microsoft 系统管理服务器 (SMS) 中。而 Windows 2000、Windows XP 和 Windows &lt;br /&gt;Server 2003 家族则包含了此工具的一个限制版本。从 Microsoft 产品支持服务也可以获得此工具。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;如何在 Windows Server 2003 上安装网络监视器&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;打开&amp;#8220;Windows 组件向导&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;在&amp;#8220;Windows 组件向导&amp;#8221;中，单击&amp;#8220;&lt;strong&gt;管理和监视工具&lt;/strong&gt;&amp;#8221;，然后单击&amp;#8220;&lt;strong&gt;详细信息&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;在&amp;#8220;&lt;strong&gt;管理和监视工具的子组件&lt;/strong&gt;&amp;#8221;中，选择&amp;#8220;&lt;strong&gt;网络监视工具&lt;/strong&gt;&amp;#8221;复选框，然后单击&amp;#8220;&lt;strong&gt;确定&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;4.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;如果提示需要其他的文件，插入操作系统的安装光盘，或键入表示文件在网络上的位置的路径。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.microsoft.com/technet/images/note.gif" /&gt;注意&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;为了执行这个过程，您必须是本地计算机上的 Administrators 组的成员，或者必须已委派适当的权限。如果此计算机在一个域中，则 Domain &lt;br /&gt;Admins 组的成员可能可以执行此过程。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;要打开&amp;#8220;Windows 组件向导&amp;#8221;，依次单击&amp;#8220;&lt;strong&gt;开始&lt;/strong&gt;&amp;#8221;、&amp;#8220;&lt;strong&gt;控制面板&lt;/strong&gt;&amp;#8221;、&amp;#8220;&lt;strong&gt;添加或删除程序&lt;/strong&gt;&amp;#8221;和&amp;#8220;&lt;strong&gt;添加/删除 &lt;br /&gt;Windows 组件&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;某些 Windows 组件需要在使用之前进行配置。如果安装了一个或多个这样的组件但是没有加以配置，则在单击&amp;#8220;&lt;strong&gt;添加/删除 Windows &lt;br /&gt;组件&lt;/strong&gt;&amp;#8221;时将显示一个需要配置的组件列表。要启动&amp;#8220;Windows 组件向导&amp;#8221;，单击&amp;#8220;&lt;strong&gt;组件&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;此过程将自动安装网络监视器驱动程序。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;如何在 Windows XP 上安装网络监视器&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;网络监视器包含在 Windows XP 支持工具中。&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;在驱动器中插入 Windows XP CD-ROM。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;双击&amp;#8220;&lt;strong&gt;我的电脑&lt;/strong&gt;&amp;#8221;，右键单击光盘驱动器，然后单击&amp;#8220;&lt;strong&gt;资源管理器&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;转到&lt;strong&gt;Support\Tools&lt;/strong&gt;，然后双击&lt;strong&gt;Setup.exe&lt;/strong&gt;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;4.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;当&amp;#8220;Windows 支持向导&amp;#8221;启动时，单击&amp;#8220;&lt;strong&gt;下一步&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;5.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;在最终用户许可协议上单击&amp;#8220;&lt;strong&gt;我同意&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;6.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;键入名称和组织，然后单击&amp;#8220;&lt;strong&gt;下一步&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;7.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;单击&amp;#8220;&lt;strong&gt;典型&lt;/strong&gt;&amp;#8221;或&amp;#8220;&lt;strong&gt;完全&lt;/strong&gt;&amp;#8221;安装类型，然后单击&amp;#8220;&lt;strong&gt;下一步&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;8.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;验证安装位置，然后单击&amp;#8220;&lt;strong&gt;安装&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;如何在 Windows 2000 上安装网络监视器&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;单击&amp;#8220;&lt;strong&gt;开始&lt;/strong&gt;&amp;#8221;，指向&amp;#8220;&lt;strong&gt;设置&lt;/strong&gt;&amp;#8221;，然后单击&amp;#8220;&lt;strong&gt;控制面板&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;双击&amp;#8220;&lt;strong&gt;添加或删除程序&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;单击&amp;#8220;&lt;strong&gt;添加/删除 Windows 组件&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;4.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;单击&amp;#8220;&lt;strong&gt;管理和监视工具&lt;/strong&gt;&amp;#8221;，然后单击&amp;#8220;&lt;strong&gt;详细信息&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;5.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;单击以选中&amp;#8220;&lt;strong&gt;网络监视工具&lt;/strong&gt;&amp;#8221;复选框，然后单击&amp;#8220;&lt;strong&gt;确定&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;6.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;单击&amp;#8220;&lt;strong&gt;下一步&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.microsoft.com/technet/images/important.gif" /&gt;重要&lt;br /&gt;在 Windows XP &lt;br /&gt;上网络监视是由 Netcap.exe 工具完成的。此工具只允许网络流量的捕获。而捕获的结果不能使用同一个工具查看。必须使用 Windows 2003 &lt;br /&gt;家族上的网络监视器的 2000 或 Windows Server 完整版来查看捕获到的数据。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;如何在 Windows XP 中捕获网络流量&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果使用在 Windows XP 支持工具中提供的 Netcap.exe 版本，使用以下过程：&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;依次单击&amp;#8220;&lt;strong&gt;开始&lt;/strong&gt;&amp;#8221;、&amp;#8220;&lt;strong&gt;所有程序&lt;/strong&gt;&amp;#8221;、&amp;#8220;&lt;strong&gt;附件&lt;/strong&gt;&amp;#8221;和&amp;#8220;&lt;strong&gt;命令提示符&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;在命令提示符窗口中，键入：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Netcap.exe /c:&lt;/strong&gt;&lt;em&gt;path&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;其中&lt;em&gt;path&lt;/em&gt;是要存储此网络记录的目录和文件名的完全路径，然后按 ENTER 键。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;在复制错误之后，键入：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Netcap.exe /remove&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;然后按 ENTER 键。这将停止网络捕获。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;在 Windows 2000 中捕获网络流量的过程和在 Windows 和 Windows Server 2003 中捕获网络流量的过程与 Windows &lt;br /&gt;XP 的过程不同。对这些操作系统使用如下过程：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;如何在 Windows 和 Windows Server 2003 家族中捕获网络流量&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;依次单击&amp;#8220;&lt;strong&gt;开始&lt;/strong&gt;&amp;#8221;、&amp;#8220;&lt;strong&gt;控制面板&lt;/strong&gt;&amp;#8221;、&amp;#8220;&lt;strong&gt;性能和维护&lt;/strong&gt;&amp;#8221;和&amp;#8220;&lt;strong&gt;管理工具&lt;/strong&gt;&amp;#8221;，然后双击&amp;#8220;&lt;strong&gt;网络监视器&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;单击&amp;#8220;&lt;strong&gt;启动&lt;/strong&gt;&amp;#8221;按钮开始捕获网络流量。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;复制错误。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;4.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;单击&amp;#8220;&lt;strong&gt;停止&lt;/strong&gt;&amp;#8221;按钮以停止捕获网络流量。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;5.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;在右侧的捕获统计信息中，验证没有因为缓冲器溢出而丢失数据包。如果丢失了任何数据包，在&amp;#8220;&lt;strong&gt;捕获&lt;/strong&gt;&amp;#8221;菜单上的&amp;#8220;&lt;strong&gt;缓冲器设置&lt;/strong&gt;&amp;#8221;对话框中增加缓冲器的大小，并重新执行捕获。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;更多信息请参见 Microsoft TechNet 上的&amp;#8220;捕获网络帧&amp;#8221;，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkId=23052"&gt;http://go.microsoft.com/fwlink/?LinkId=23052&lt;/a&gt;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;如何筛选特定于 Kerberos 的网络流量&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;可以筛选出来自除 Kerberos 协议之外的所有协议的包。为了应用一个只显示与 Kerberos &lt;br /&gt;协议相关的网络流量的筛选器，在网络监视器中执行以下捕获：&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;单击&amp;#8220;&lt;strong&gt;捕获&lt;/strong&gt;&amp;#8221;，然后单击&amp;#8220;&lt;strong&gt;显示捕获的数据&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;单击&amp;#8220;漏斗&amp;#8221;按钮，然后双击&lt;strong&gt;协议 == 任何&lt;/strong&gt;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;单击&amp;#8220;&lt;strong&gt;禁用全部&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;从列表中选择 &lt;br /&gt;Kerberos，然后单击&amp;#8220;&lt;strong&gt;启用&lt;/strong&gt;&amp;#8221;。单击&amp;#8220;&lt;strong&gt;确定&lt;/strong&gt;&amp;#8221;，然后再次单击&amp;#8220;&lt;strong&gt;确定&lt;/strong&gt;&amp;#8221;。在执行此过程之后，将只会出现 Kerberos &lt;br /&gt;数据包。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;如果在应用此筛选器之后没有出现数据包&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;可能的原因是：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;Kerberos 票证已发出或已缓存。可以使用 Kerberos List 来显示当前在计算机上发出的所有票证。还可以使用 Kerberos List &lt;br /&gt;来清除所有票证。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;没有尝试 Kerberos 身份验证协议。安全日志中相关的登录事件应该指出对用户进行身份验证所使用的协议。如果列出了 NTLM，则没有尝试 &lt;br /&gt;Kerberos 身份验证。如果 NTLM 回退是在登录时或请求网络资源时发生的，则事件日志中可能包含有用的信息。更多信息请参见&amp;#8220;故障诊断 Kerberos &lt;br /&gt;错误&amp;#8221;白皮书，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkID=27176"&gt;http://go.microsoft.com/fwlink/?LinkID=27176&lt;/a&gt;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;网络监视器缓冲器溢出。在高流量的网络中，如果使用默认的缓冲器大小来配置此工具，则很容易出现这种情况。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;分析捕获到的 Kerberos 流量&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;在捕获了一些 Kerberos &lt;br /&gt;包之后，可以通过确定捕获到的数据与成功的身份验证之间的区别来对问题进行诊断。在大多数情况下，诊断将涉及到以下包交换并在捕获的数据中查找 KRB_ERROR &lt;br /&gt;包。不过在一些情况下，特别是在一切都正常的情况下，需要进行更深入的分析。&amp;#8220;附录 &lt;br /&gt;C&amp;#8221;中提供了几个捕获的网络数据的例子，这些例子说明了成功的登录并显示了常见的失败。对捕获的数据进行了注释，以帮助说明每个帧对身份验证尝试的成功或失败的影响。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;更多信息请参见：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;Microsoft 知识库中的&amp;#8220;如何使用网络监视器查看 HTTP 数据帧&amp;#8221;，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkId=23055"&gt;http://go.microsoft.com/fwlink/?LinkId=23055&lt;/a&gt;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;Microsoft 知识库中的&amp;#8220;有关网络监视器的常见问题&amp;#8221;，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkId=23056"&gt;http://go.microsoft.com/fwlink/?LinkId=23056&lt;/a&gt;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Setspn&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Setspn 工具设置 SPN。由于 SPN 是安全敏感的，所以如果具有域管理员权限，则只能为用户对象设置 SPN。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;如何安装 Setspn&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Setspn 工具包含在 Windows Server 2003 支持工具中。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;如何使用 Setspn&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;为了添加一个 SPN，可以在命令提示符下键入以下命令：&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;setspn &amp;#8211;A &lt;/strong&gt;&lt;em&gt;ServiceClass&lt;/em&gt;/&lt;em&gt;Host&lt;/em&gt;:&lt;em&gt;Port AccountName&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;为了删除一个 SPN，可以在命令提示符下键入以下命令：&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;setspn &amp;#8211;D &lt;/strong&gt;&lt;em&gt;ServiceClass&lt;/em&gt;/&lt;em&gt;Host&lt;/em&gt;:&lt;em&gt;Port AccountName&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;为了查看为一个帐户注册的 SPN，可以在命令提示符下键入以下命令：&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;setspn &amp;#8211;L&lt;/strong&gt; &lt;em&gt;AccountName&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;为了重新设置一个帐户的主机名称的默认 SPN 注册，可以在命令提示符下键入以下命令：&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;setspn &amp;#8211;R&lt;/strong&gt; &lt;em&gt;AccountName&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;以下各节将讨论上面所列出的参数。&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;ServiceClass&lt;/em&gt;。SPN 的种类有很多，应该为一台计算机上的每个服务都指定一个适当的 SPN 服务类。如果编写一个应用程序以利用 &lt;br /&gt;Kerberos 身份验证和委派，则它将具有访问预先确定所需的特定类型的 SPN。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;例如，当 Internet Explorer 版本 5.5 及更高版本使用 Kerberos 协议来身份验证到 Web 服务时，此应用程序将查找 HTTP &lt;br /&gt;SPN。另一方面，SQL Server 客户端将查找 MSSQLSvc&lt;strong&gt;/&lt;/strong&gt; SPN。如果在一个 SPN 上使用了错误的服务类，则在一个服务搜索此 &lt;br /&gt;SPN 时将无法定位此 SPN。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;Host&lt;/em&gt;。SPN 所属于的计算机是服务在其上运行的计算机可以参考的所有名称。这通常包含一个 NetBIOS 名称、一个完全合格的域名 &lt;br /&gt;(FQDN) 和为此计算机指定的任意别名。需要为计算机所参考的每个名称设置一个独立的 SPN，并相应地更改 &lt;br /&gt;&lt;em&gt;Host&lt;/em&gt;参数。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;Port。&lt;/em&gt;服务在其上运行的端口。如果这是此服务的默认端口（例如 HTTP 的 80 &lt;br /&gt;端口），则可以省略。然而，推荐不论运行的是什么服务都包含端口。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;AccountName&lt;/em&gt;。服务在其下运行的域帐户的名称。如果此服务作为本地系统或网络服务运行，则通常不需要为此服务显式地设置 &lt;br /&gt;SPN，这是因为大多数常见的 SPN 服务类将自动映射到自动为每个计算机帐户生成的 HOST/ &lt;br /&gt;SPN。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#top"&gt;&lt;img border="0" alt="返回页首" src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" width="7" height="9" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="ES2BG"&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;附录 B：常见方案的配置示例&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Internet Explorer 到 IIS 再到 SQL Server&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 28 Internet Explorer 到 IIS 再到 SQL Server" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd28.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 28 Internet Explorer 到 IIS 再到 SQL Server&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Internet Explorer 6&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证为 Kerberos 协议配置了客户端应用程序&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;这个过程将根据所使用的客户端应用程序而有所不同。对于 Internet Explorer 6，必须确保配置了集成的 Windows &lt;br /&gt;身份验证并且站点位于本地 Intranet 区域中。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;要配置集成的 Windows 身份验证&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;在 Internet Explorer 中的&amp;#8220;&lt;strong&gt;工具&lt;/strong&gt;&amp;#8221;菜单上，单击&amp;#8220;&lt;strong&gt;Internet &lt;br /&gt;选项&lt;/strong&gt;&amp;#8221;，然后&amp;#8220;&lt;strong&gt;&lt;/strong&gt;单击&lt;strong&gt;高级&lt;/strong&gt;&amp;#8221;选项卡。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;在&amp;#8220;&lt;strong&gt;安全&lt;/strong&gt;&amp;#8221;列表框中，选择&amp;#8220;&lt;strong&gt;启用集成的 Windows &lt;br /&gt;身份验证（需要重新启动）&lt;/strong&gt;&amp;#8221;复选框，然后单击&amp;#8220;&lt;strong&gt;确定&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;重新启动 Internet Explorer。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;有关此问题的信息，请参见 Microsoft 知识库中的&amp;#8220;在升级到 Internet Explorer 6 之后无法协商 Kerberos &lt;br /&gt;身份验证&amp;#8221;，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkId=23045"&gt;http://go.microsoft.com/fwlink/?LinkId=23045&lt;/a&gt;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证网站位于本地 Intranet 区域中&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果 Internet Explorer 尝试访问一个位于 Internet 区域的站点，则将不会使用 Kerberos 协议。Internet &lt;br /&gt;区域站点不能使用集成的 Windows 身份验证，其原因包括这些协议通常通过 Web 代理工作等。如果站点位于 Internet 区域中，Internet &lt;br /&gt;Explorer 将不会尝试使用 Kerberos 身份验证，并且将自动尝试 NTLM。在 Internet Explorer 的所有版本中，当访问一个希望使用 &lt;br /&gt;Kerberos 身份验证的网站时，必须验证此网站位于本地 Intranet 区域中。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.microsoft.com/technet/images/note.gif" /&gt;注意&lt;br /&gt;Internet Explorer &lt;br /&gt;窗口的右下角中的一个图标指示了网站所处于的区域。此图标将为 Internet 区域显示&amp;#8220;Internet&amp;#8221;，为 Intranet 区域显示&amp;#8220;本地 &lt;br /&gt;Intranet&amp;#8221;。如果网站位于 Internet 区域中，则必须手动将站点添加到本地 Intranet 站点列表中。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;要将一个站点添加到本地 Intranet 站点列表中&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;在 Internet Explorer 中，单击&amp;#8220;&lt;strong&gt;工具&lt;/strong&gt;&amp;#8221;，然后单击&amp;#8220;&lt;strong&gt;Internet 选项&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;单击&amp;#8220;&lt;strong&gt;安全&lt;/strong&gt;&amp;#8221;选项卡，接着单击&amp;#8220;&lt;strong&gt;本地 &lt;br /&gt;Intranet&lt;/strong&gt;&amp;#8221;，再单击&amp;#8220;&lt;strong&gt;站点&lt;/strong&gt;&amp;#8221;，然后单击&amp;#8220;&lt;strong&gt;高级&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;在&lt;strong&gt;将该网站添加到区域中：&lt;/strong&gt;文本框中，键入要使用 Kerberos &lt;br /&gt;身份验证进行身份验证的网站名称，然后单击&amp;#8220;&lt;strong&gt;添加&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;4.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;单击&amp;#8220;&lt;strong&gt;确定&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;有关添加本地 Intranet 站点的自动过程，请参见 Microsoft TechNet 上的&amp;#8220;管理 Internet Explorer &lt;br /&gt;增强的安全性配置&amp;#8221;白皮书中的以下主题，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkId=26091"&gt;http://go.microsoft.com/fwlink/?LinkId=26091&lt;/a&gt;。&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;&amp;#8220;使用组策略从安全区域添加或删除站点&amp;#8221;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;&amp;#8220;使用 Internet Explorer 维护来执行受信任的站点和安全设置&amp;#8221;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;IIS&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证为运行 IIS 的服务设置了一个 SPN&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;在命令提示符下键入：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;setspn &amp;#8211;L&lt;/strong&gt; &lt;em&gt;帐户&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;其中&lt;em&gt;帐户&lt;/em&gt;是运行 IIS 的服务器在其下运行的帐户的名称。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;为了使委派正常工作，必须存在以下两个 IIS 帐户的 SPN：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;一个是 HTTP&lt;strong&gt;/&lt;/strong&gt;&lt;em&gt;Host&lt;/em&gt; 的 SPN，其中 &lt;em&gt;Host&lt;/em&gt; 是主机的名称。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;一个是 HTTP&lt;strong&gt;/&lt;/strong&gt;&lt;em&gt;FQDN&lt;/em&gt; 的 SPN，其中 &lt;em&gt;FQDN&lt;/em&gt; &lt;br /&gt;是主机的完全合格域名。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;在大多数情况下，将为 IIS 自动使用 HOST/&lt;em&gt;Host&lt;/em&gt; 和 HOST/&lt;em&gt;FQDN&lt;/em&gt;。如果 IIS &lt;br /&gt;作为本地系统或网络服务运行，则不需要手动设置任何 SPN。如果运行 IIS 的服务器的主机名具有一个别名，则通常要求注册 SPN。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;疑难解答&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果没有列出任何 HTTP SPN 或缺少一个 SPN，则使用 &lt;strong&gt;setspn &amp;#8211;A&lt;/strong&gt; 命令添加适当的 SPN。这些 SPN 对于 &lt;br /&gt;Internet Explorer 正确地身份验证到 Web 服务器来说是必需的。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果列出了重复的 SPN，则使用 Setspn 工具重命名或删除重复的 SPN。可以使用 Ldifde 来查询全局目录以确保没有重复的 SPN。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证为 IIS 帐户配置了委派&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;通常情况下，IIS 在 本地系统或网络服务帐户下运行。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;为了验证为委派信任了 IIS 帐户&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;打开&amp;#8220;Active Directory 用户和计算机&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;找到 IIS 的服务帐户。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;右键单击此帐户，然后单击&amp;#8220;&lt;strong&gt;属性&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;如果 IIS 使用的是 Windows 2000 &lt;br /&gt;功能级域中的帐户，应该选中&amp;#8220;&lt;strong&gt;常规&lt;/strong&gt;&amp;#8221;选项卡上的&amp;#8220;&lt;strong&gt;信任计算机作为委派&lt;/strong&gt;&amp;#8221;选项。（参见图 29。）&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 29 为委派信任功能级 Windows 2000 域计算机帐户" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd29.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 29 为委派信任功能级 Windows 2000 域计算机帐户&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;如果 IIS 使用的是 Windows 2000 &lt;br /&gt;功能级域中的帐户，单击&amp;#8220;&lt;strong&gt;帐户&lt;/strong&gt;&amp;#8221;选项卡。在&amp;#8220;&lt;strong&gt;帐户选项&lt;/strong&gt;&amp;#8221;框中，确认选中了&amp;#8220;&lt;strong&gt;敏感帐户，不能被委派&lt;/strong&gt;&amp;#8221;选项。（参见图 30。） &lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 30 为委派信任服务帐户" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd30.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 30 为委派信任服务帐户&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;如果 IIS 帐户在 Windows Server 2003 功能级域中，单击&amp;#8220;&lt;strong&gt;委派&lt;/strong&gt;&amp;#8221;选项卡。&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 31 使用约束委派的 Windows Server 2003 功能级域用户帐户" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd31.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 31 使用约束委派的 Windows Server 2003 功能级域用户帐户&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;在&amp;#8220;&lt;strong&gt;委派&lt;/strong&gt;&amp;#8221;选项卡上，选择以下两个&amp;#8220;&lt;strong&gt;信任&lt;/strong&gt;&amp;#8221;选项之一：&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;要将此帐户配置为使用不受限的委派，选择&amp;#8220;&lt;strong&gt;信任此用户来委派任何服务（仅 Kerberos）&lt;/strong&gt;&amp;#8221;。不推荐选择此选项。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;要将此帐户配置为使用受限的委派，选择&amp;#8220;&lt;strong&gt;仅信任此用户来委派指定服务&lt;/strong&gt;&amp;#8221;。通过选择以下两个选项之一来配置协议转换：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;要将帐户配置为使用约束委派而不进行协议转换，选择&amp;#8220;&lt;strong&gt;仅使用 Kerberos&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;要将帐户配置为使用约束委派并且进行协议转换，选择&amp;#8220;&lt;strong&gt;使用任意身份验证协议&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.microsoft.com/technet/images/note.gif" /&gt;注意&lt;br /&gt;在使用约束委派时，确认适当的 SPN &lt;br /&gt;在此帐户可以向其提交委派凭据列表的服务之内。此 SPN 应该为 SQL 服务的 SPN。前面曾经提到过，SPN 本身由三个信息段（即 &lt;br /&gt;ServiceClass/Host:Port）组成，在此情况下：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;MSSQLSvc 是 SQL Server 的服务类。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;SQLServer 是计算机的主机名。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;1433 是 SQL Server &lt;br /&gt;在其上运行的端口。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证为模仿配置了中间层服务。&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;当运行 SQL 2000 时，必须在 IIS 服务器上使用 MDAC 2.6 或更高版本。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;在中间层是 IIS 的例子中，必须只为网站启用集成的 Windows 身份验证选项。这确保了使用的是 Kerberos 协议而不是其他协议。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;要为只使用集成的 Windows 身份验证的网站配置目录安全性&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;打开&amp;#8220;IIS 管理器&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;单击运行 IIS 的计算机的名称，然后单击&amp;#8220;&lt;strong&gt;网站&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;右键单击网站的名称，然后单击&amp;#8220;&lt;strong&gt;属性&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;4.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;单击&amp;#8220;&lt;strong&gt;目录安全性&lt;/strong&gt;&amp;#8221;选项卡，然后在&amp;#8220;&lt;strong&gt;身份验证和访问控制&lt;/strong&gt;&amp;#8221;下单击&amp;#8220;&lt;strong&gt;编辑...&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;5.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;通过以下方式验证只选中了&amp;#8220;&lt;strong&gt;集成的 Windows 身份验证&lt;/strong&gt;&amp;#8221;复选框：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;清除&amp;#8220;&lt;strong&gt;启用匿名访问&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;选择&amp;#8220;&lt;strong&gt;集成的 Windows 身份验证&lt;/strong&gt;&amp;#8221;复选框。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;清除下面的这些复选框：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;#8220;&lt;strong&gt;Windows 域服务器的摘要式身份验证&lt;/strong&gt;&amp;#8221;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;#8220;&lt;strong&gt;基本身份验证（以明文形式发送密码）&lt;/strong&gt;&amp;#8221;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;#8220;&lt;strong&gt;.NET Passport 身份验证&lt;/strong&gt;&amp;#8221; &lt;br /&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;SQL Server&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证为 SQL Server 帐户设置了一个 SPN&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果 SQL Server 在一个域用户帐户 &lt;em&gt;domain\sqlServiceAccount&lt;/em&gt; 下运行，则需要为 &lt;br /&gt;&lt;em&gt;sqlServiceAccount&lt;/em&gt; 而不是 &lt;em&gt;computername&lt;/em&gt;$ 注册一个 SPN。不这样做将会导致登录失败。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;在命令提示符下键入：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;setspn &amp;#8211;L&lt;/strong&gt; &lt;em&gt;帐户&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;其中&lt;em&gt;帐户&lt;/em&gt;是 SQL Server 在其下运行的帐户的名称。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;为了使委派正常工作，必须存在以下两个 SQL 服务的 SPN：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;一个是 MSSQLSvc/&lt;em&gt;Host&lt;/em&gt;:1433 的 SPN&lt;em&gt;，&lt;/em&gt;其中 &lt;em&gt;Host&lt;/em&gt; &lt;br /&gt;是主机的名称。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;一个是 MSSQLSvc&lt;strong&gt;/&lt;/strong&gt;&lt;em&gt;FQDN&lt;/em&gt;:1433 的 SPN，其中 &lt;em&gt;FQDN&lt;/em&gt; 是运行 SQL Server &lt;br /&gt;的计算机的完全合格域名。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;在 SQL 2000 中，如果 SQL 服务帐户在本地系统帐户下运行或作为域管理员运行，则将默认注册此 SPN。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;疑难解答&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果没有列出任何 MSSQLSvc SPN 或缺少一个 SPN，则应该使用 &lt;strong&gt;setspn &amp;#8211;A&lt;/strong&gt; 命令添加适当的 SPN。这些 SPN 是 &lt;br /&gt;Web 服务器或 Web 服务正确地身份验证以及委派凭据到运行 SQL Server 的计算机所必需的。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果列出了重复的 SPN，则使用 Setspn 工具重命名或删除重复的 SPN。可以使用 Ldifde 来查询全局目录以确保没有重复的 SPN。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Internet Explorer 到使用 ASP.NET Web 服务的 IIS 到 SQL Server&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;有关为委派配置 ASP.NET 应用程序的更多信息，请参见 Microsoft 知识库中的&amp;#8220;如何为委派方案配置 ASP.NET 应用程序&amp;#8221;，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkId=24926"&gt;http://go.microsoft.com/fwlink/?LinkId=24926&lt;/a&gt;。&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 32 Internet Explorer-ASP.NET-SQL Server 委派方案" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd32.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 32 Internet Explorer-ASP.NET-SQL Server 委派方案&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Internet Explorer 6&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证为 Kerberos 协议配置了客户端应用程序&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;这个过程将根据所使用的客户端应用程序而有所不同。对于 Internet Explorer 6，必须确保配置了集成的 Windows &lt;br /&gt;身份验证并且站点位于本地 Intranet 区域中。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;要配置集成的 Windows 身份验证&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;在 Internet Explorer 中的&amp;#8220;&lt;strong&gt;工具&lt;/strong&gt;&amp;#8221;菜单上，单击&amp;#8220;&lt;strong&gt;Internet &lt;br /&gt;选项&lt;/strong&gt;&amp;#8221;，然后&amp;#8220;&lt;strong&gt;&lt;/strong&gt;单击&lt;strong&gt;高级&lt;/strong&gt;&amp;#8221;选项卡。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;在&amp;#8220;&lt;strong&gt;安全&lt;/strong&gt;&amp;#8221;列表框中，选择&amp;#8220;&lt;strong&gt;启用集成的 Windows &lt;br /&gt;身份验证（需要重新启动）&lt;/strong&gt;&amp;#8221;复选框，然后单击&amp;#8220;&lt;strong&gt;确定&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;重新启动 Internet Explorer。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;有关此问题的信息，请参见 Microsoft 知识库中的&amp;#8220;在升级到 Internet Explorer 6 之后无法协商 Kerberos &lt;br /&gt;身份验证&amp;#8221;，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkId=23045"&gt;http://go.microsoft.com/fwlink/?LinkId=23045&lt;/a&gt;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证网站位于本地 Intranet 区域中&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果 Internet Explorer 尝试访问一个位于 Internet 区域中的站点，则将不会使用 Kerberos 协议。Internet &lt;br /&gt;区域站点不能使用集成的 Windows 身份验证，其原因包括这些协议通常通过 Web 代理进行工作等。如果站点位于 Internet 区域中，则 &lt;br /&gt;Internet Explorer 将不会尝试使用 Kerberos 身份验证，并且将自动尝试 NTLM。在 Internet Explorer &lt;br /&gt;的所有版本中，当访问一个希望使用 Kerberos 身份验证的网站时，必须验证此网站位于本地 Intranet 区域中。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.microsoft.com/technet/images/note.gif" /&gt;注意&lt;br /&gt;Internet Explorer &lt;br /&gt;窗口的右下角中的一个图标指示了网站所处于的区域。此图标将为 Internet 区域显示&amp;#8220;Internet&amp;#8221;，为 Intranet 区域显示&amp;#8220;本地 &lt;br /&gt;Intranet&amp;#8221;。如果网站位于 Internet 区域中，则必须手动将站点添加到本地 Intranet 站点列表中。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;要将一个站点添加到本地 Intranet 站点列表中&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;在 Internet Explorer 中，单击&amp;#8220;&lt;strong&gt;工具&lt;/strong&gt;&amp;#8221;，然后单击&amp;#8220;&lt;strong&gt;Internet 选项&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;单击&amp;#8220;&lt;strong&gt;安全&lt;/strong&gt;&amp;#8221;选项卡，接着单击&amp;#8220;&lt;strong&gt;本地 &lt;br /&gt;Intranet&lt;/strong&gt;&amp;#8221;，再单击&amp;#8220;&lt;strong&gt;站点&lt;/strong&gt;&amp;#8221;，然后单击&amp;#8220;&lt;strong&gt;高级&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;在&amp;#8220;&lt;strong&gt;将该网站添加到区域中：&lt;/strong&gt;&amp;#8221;文本框中，键入要使用 Kerberos &lt;br /&gt;身份验证进行身份验证的网站名称，然后单击&amp;#8220;&lt;strong&gt;添加&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;4.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;单击&amp;#8220;&lt;strong&gt;确定&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;有关添加本地 Intranet 站点的自动过程，请参见 Microsoft TechNet 上的&amp;#8220;管理 Internet Explorer &lt;br /&gt;增强的安全性配置&amp;#8221;白皮书中的以下主题，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkId=26091"&gt;http://go.microsoft.com/fwlink/?LinkId=26091&lt;/a&gt;。&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;&amp;#8220;使用组策略从安全区域添加或删除站点&amp;#8221;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;&amp;#8220;使用 Internet Explorer 维护来执行受信任的站点和安全设置&amp;#8221;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;IIS/Web 服务&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;在 Internet Explorer 到 IIS 到 ASP.NET Web 服务再到 SQL Server 方案中，需要为 IIS 帐户、Web &lt;br /&gt;服务帐户和 SQL 服务帐户注册 SPN。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证为 IIS 帐户设置了一个 SPN&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;在命令提示符下键入：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;setspn &amp;#8211;L&lt;/strong&gt; &lt;em&gt;帐户&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;其中&lt;em&gt;帐户&lt;/em&gt;是运行 IIS 的服务器在其下运行的帐户的名称。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;为了使委派正常工作，必须存在以下两个 IIS 帐户的 SPN：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;一个是 HTTP&lt;strong&gt;/&lt;/strong&gt;&lt;em&gt;Host&lt;/em&gt; 的 SPN，其中 &lt;em&gt;Host&lt;/em&gt; 是主机的名称。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;一个是 HTTP&lt;strong&gt;/&lt;/strong&gt;&lt;em&gt;FQDN&lt;/em&gt; 的 SPN，其中 &lt;em&gt;FQDN&lt;/em&gt; &lt;br /&gt;是主机的完全合格域名。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;在大多数情况下，将为 IIS 自动使用 HOST/&lt;em&gt;Host&lt;/em&gt; 和 HOST/&lt;em&gt;FQDN&lt;/em&gt;。如果 IIS &lt;br /&gt;作为本地系统或网络服务运行，则不需要手动设置任何 SPN。然而，如果运行 IIS 的服务器的主机名具有一个别名，则通常要求注册 SPN。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;疑难解答&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果没有列出任何 HTTP SPN 或缺少一个 SPN，则使用 &lt;strong&gt;setspn &amp;#8211;A&lt;/strong&gt; 命令添加适当的 SPN。这些 SPN 对于 &lt;br /&gt;Internet Explorer 正确地身份验证到 Web 服务器来说是必需的。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果列出了重复的 SPN，则使用 Setspn 工具重命名或删除重复的 SPN。可以使用 Ldifde 来查询全局目录以确保没有重复的 SPN。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证为 Web 服务帐户设置了一个 SPN&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;在命令提示符下键入：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;setspn &amp;#8211;L&lt;/strong&gt;&lt;em&gt;帐户&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;其中&lt;em&gt;帐户&lt;/em&gt;是 Web 服务在其下运行的帐户的名称。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;为了使委派正常工作，必须存在以下两个 Web 服务帐户的 SPN：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;一个是 HTTP&lt;strong&gt;/&lt;/strong&gt;&lt;em&gt;Host&lt;/em&gt; 的 SPN，其中 &lt;em&gt;Host&lt;/em&gt; 是主机的名称。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;一个是 HTTP&lt;strong&gt;/&lt;/strong&gt;&lt;em&gt;FQDN&lt;/em&gt; 的 SPN，其中 &lt;em&gt;FQDN&lt;/em&gt; &lt;br /&gt;是主机的完全合格域名。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;疑难解答&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果没有列出任何 HTTP SPN 或缺少一个 SPN，则使用 &lt;strong&gt;setspn &amp;#8211;A&lt;/strong&gt; 命令添加适当的 SPN。这两个 SPN 是必需的，以使 &lt;br /&gt;Web 服务器可以正确地将凭据委派到 Web 服务。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果列出了重复的 SPN，则使用 Setspn 工具重命名或删除重复的 SPN。可以使用 Ldifde 来查询全局目录以确保没有重复的 SPN。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证为 IIS 服务器帐户配置了委派&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;通常情况下，IIS 在本地系统或网络服务帐户下运行。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;为了验证为委派信任了 IIS 帐户&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;打开&amp;#8220;Active Directory 用户和计算机&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;找到 IIS 服务的帐户。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;右键单击此帐户，然后单击&amp;#8220;&lt;strong&gt;属性&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;如果此计算机帐户在 Windows 2000 功能级域中，应该选中&amp;#8220;&lt;strong&gt;常规&lt;/strong&gt;&amp;#8221;选项卡上的&amp;#8220;&lt;strong&gt;信任计算机作为委派&lt;/strong&gt;&amp;#8221;选项。（参见图 &lt;br /&gt;33。）&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 33 为委派信任功能级 Windows 2000 域计算机帐户" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd33.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 33 为委派信任功能级 Windows 2000 域计算机帐户&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;如果此 IIS 帐户是 2000 功能级域中的用户帐户，单击 Windows&amp;#8220;&lt;strong&gt;帐户&lt;/strong&gt;&amp;#8221;选项卡。&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 34 为委派信任服务帐户" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd34.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 34 为委派信任服务帐户&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;在&amp;#8220;&lt;strong&gt;帐户选项&lt;/strong&gt;&amp;#8221;框中，确认选中了&amp;#8220;&lt;strong&gt;敏感帐户，不能被委派&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;如果 IIS 使用的是 Windows Server 2003 功能级域中的计算机帐户或用户帐户，单击&amp;#8220;&lt;strong&gt;委派&lt;/strong&gt;&amp;#8221;选项卡。&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 35 IIS 服务器帐户委派到使用协议转换的 Web 服务" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd35.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 35 IIS 服务器帐户委派到使用协议转换的 Web 服务&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;在&amp;#8220;&lt;strong&gt;委派&lt;/strong&gt;&amp;#8221;选项卡上，选择以下两个&amp;#8220;&lt;strong&gt;信任&lt;/strong&gt;&amp;#8221;选项之一：&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;要将此帐户配置为使用不受限的委派，选择&amp;#8220;&lt;strong&gt;信任此用户来委派任何服务（仅 Kerberos）&lt;/strong&gt;&amp;#8221;。不推荐选择此选项。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;要将此帐户配置为使用受限的委派，选择&amp;#8220;&lt;strong&gt;仅信任此用户来委派指定服务&lt;/strong&gt;&amp;#8221;。通过选择以下两个选项之一来配置协议转换：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;要将帐户配置为使用约束委派而不进行协议转换，选择&amp;#8220;&lt;strong&gt;仅使用 Kerberos&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;要将帐户配置为使用约束委派并且进行协议转换，选择&amp;#8220;&lt;strong&gt;使用任意身份验证协议&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.microsoft.com/technet/images/note.gif" /&gt;注意&lt;br /&gt;在使用约束委派时，确认适当的 SPN &lt;br /&gt;在此帐户可以向其提交委派凭据列表的服务之内。这应该是 Web 服务帐户的 SPN（在 ASP.NET 方案下这应该是 ASP.NET &lt;br /&gt;在其下运行的帐户）。前面曾经提到过，SPN 本身由三个信息段（即 ServiceClass/Host:Port）组成，在 ASP.NET Web &lt;br /&gt;服务的情况下：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;HTTP 是 Web 服务的服务类。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;lisserver 是计算机的名称。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;80 端口是 Web &lt;br /&gt;服务在其上运行的端口。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证为 Web 服务帐户配置了委派&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;通常 Web 服务在域用户帐户下运行。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;为了验证为委派信任了 Web 服务帐户&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;打开&amp;#8220;Active Directory 用户和计算机&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;找到 Web 服务的帐户。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;右键单击此帐户，然后单击&amp;#8220;&lt;strong&gt;属性&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;如果此 Web 帐户使用的是 2000 功能级域中的用户帐户，单击 Windows&amp;#8220;&lt;strong&gt;帐户&lt;/strong&gt;&amp;#8221;选项卡。&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 36 为委派信任服务帐户" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd36.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 36 为委派信任服务帐户&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;在&amp;#8220;&lt;strong&gt;帐户选项&lt;/strong&gt;&amp;#8221;框中，确认选中了&amp;#8220;&lt;strong&gt;敏感帐户，不能被委派&lt;/strong&gt;&amp;#8221;。（参见图 36。）&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;如果 Web 服务帐户在 Windows Server 2003 功能级域中，单击&amp;#8220;&lt;strong&gt;委派&lt;/strong&gt;&amp;#8221;选项卡。&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 37 Web 服务帐户委派到不使用协议转换的 SQL Server" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd37.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 37 Web 服务帐户委派到不使用协议转换的 SQL Server&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;在&amp;#8220;&lt;strong&gt;委派&lt;/strong&gt;&amp;#8221;选项卡上，选择以下两个&amp;#8220;&lt;strong&gt;信任&lt;/strong&gt;&amp;#8221;选项之一：&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;要将帐户配置为使用不受限的委派，选择&amp;#8220;&lt;strong&gt;信任此计算机来委派任何服务（仅 Kerberos）&lt;/strong&gt;&amp;#8221;。不推荐选择此选项。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;要将帐户配置为使用受限的委派，选择&amp;#8220;&lt;strong&gt;仅信任此计算机来委派指定服务&lt;/strong&gt;&amp;#8221;。通过选择以下两个选项之一来配置协议转换：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;要将帐户配置为使用约束委派而不进行协议转换，选择&amp;#8220;&lt;strong&gt;仅使用 Kerberos&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;要将帐户配置为使用约束委派并且进行协议转换，选择&amp;#8220;&lt;strong&gt;使用任意身份验证协议&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.microsoft.com/technet/images/note.gif" /&gt;注意&lt;br /&gt;在使用约束委派时，确认适当的 SPN &lt;br /&gt;在此帐户可以向其提交委派凭据列表的服务之内。此 SPN 应该为 SQL 服务的 SPN。前面曾经提到过，SPN 本身由三个信息段（即 &lt;br /&gt;ServiceClass/Host:Port）组成，在 SQL 服务的情况下：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;MSSQLSvc 是 SQL Server 的服务类。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;SQLServer 是计算机的主机名称。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;1433 是 SQL &lt;br /&gt;服务在其上运行的端口。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证为模仿配置了中间层服务&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;当运行 SQL 2000 时，必须在 IIS 服务器上使用 MDAC 2.6 或更高版本。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;当中间层是 IIS 和 ASP.NET Web 服务时，网站必须在&amp;#8220;&lt;strong&gt;目录安全性&lt;/strong&gt;&amp;#8221;选项卡上只启用了&amp;#8220;&lt;strong&gt;集成的 Windows &lt;br /&gt;身份验证&lt;/strong&gt;&amp;#8221;选项。这确保了使用的是 Kerberos 协议而不是其他协议。此外，为了使委派可以与 ASP.NET Web &lt;br /&gt;服务一起工作，在此服务中必须开启身份模仿。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;要为只使用集成的 Windows 身份验证的网站配置目录安全性&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;打开&amp;#8220;IIS 管理器&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;单击运行 IIS 的计算机的名称，然后单击&amp;#8220;&lt;strong&gt;网站&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;右键单击网站的名称，然后单击&amp;#8220;&lt;strong&gt;属性&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;4.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;单击&amp;#8220;&lt;strong&gt;目录安全性&lt;/strong&gt;&amp;#8221;选项卡，然后在&amp;#8220;&lt;strong&gt;身份验证和访问控制&lt;/strong&gt;&amp;#8221;下单击&amp;#8220;&lt;strong&gt;编辑...&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;5.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;通过以下方式验证只选中了&amp;#8220;&lt;strong&gt;集成的 Windows 身份验证&lt;/strong&gt;&amp;#8221;复选框：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;清除&amp;#8220;&lt;strong&gt;启用匿名访问&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;选择&amp;#8220;&lt;strong&gt;集成的 Windows 身份验证&lt;/strong&gt;&amp;#8221;复选框。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;清除下面的这些复选框：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;#8220;&lt;strong&gt;Windows 域服务器的摘要式身份验证&lt;/strong&gt;&amp;#8221;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;#8220;&lt;strong&gt;基本身份验证（以明文形式发送密码）&lt;/strong&gt;&amp;#8221;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;#8220;&lt;strong&gt;.NET Passport 身份验证&lt;/strong&gt;&amp;#8221; &lt;br /&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;为了在 ASP.NET 应用程序中为每个页面的请求模仿 IIS 身份验证的用户，必须在此应用程序的 Web.config 文件中包含一个 &lt;br /&gt;&amp;lt;identity&amp;gt; 标记，并将 &lt;strong&gt;Impersonate&lt;/strong&gt; 属性设置为 &lt;strong&gt;True&lt;/strong&gt;。此文件可以在网站和 Web &lt;br /&gt;服务的虚拟根目录中找到。确保在 Web.config 文件中包含以下 &amp;lt;identity&amp;gt; 标记：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;identity impersonate=&amp;#8221;true&amp;#8221; /&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果 Web.config 文件中没有此标记，将其添加到此文件的 &lt;strong&gt;&amp;lt;&lt;/strong&gt;system.web&lt;strong&gt;&amp;gt;&lt;/strong&gt; 部分。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;更多信息请参见 Microsoft 知识库中的&amp;#8220;信息：在 ASP.NET 应用程序中执行模仿&amp;#8221;，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkId=24923"&gt;http://go.microsoft.com/fwlink/?LinkId=24923&lt;/a&gt;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;SQL Server&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证为 SQL Server 帐户设置了一个 SPN&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果 SQL Server 在一个域用户帐户 &lt;em&gt;domain\sqlServiceAccount&lt;/em&gt; 下运行，则需要为 &lt;br /&gt;&lt;em&gt;sqlServiceAccount&lt;/em&gt; 而不是 &lt;em&gt;computername&lt;/em&gt;$ 注册一个 SPN。不这样做将会导致登录失败。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;在命令提示符下键入：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;setspn &amp;#8211;L&lt;/strong&gt; &lt;em&gt;帐户&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;其中&lt;em&gt;帐户&lt;/em&gt;是 SQL Server 在其下运行的帐户的名称。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;为了使委派正常工作，必须存在以下两个 SQL 服务帐户的 SPN：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;一个是 MSSQLSvc/&lt;em&gt;Host&lt;/em&gt;:1433 的 SPN&lt;em&gt;，&lt;/em&gt;其中 &lt;em&gt;Host&lt;/em&gt; &lt;br /&gt;是主机的名称。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;一个是 MSSQLSvc/&lt;em&gt;FQDN&lt;/em&gt;:1433 的 SPN，其中 &lt;em&gt;FQDN&lt;/em&gt; 是运行 SQL Server &lt;br /&gt;的计算机的完全合格域名。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;在 SQL 2000 中，如果 SQL 服务帐户在本地系统帐户下运行或作为域管理员运行，则将默认注册此 SPN。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;疑难解答&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果没有列出任何 MSSQLSvc SPN 或缺少一个 SPN，则应该使用 &lt;strong&gt;setspn &amp;#8211;A&lt;/strong&gt; 命令添加适当的 SPN。这些 SPN 是 &lt;br /&gt;Web 服务器或 Web 服务正确地身份验证以及委派凭据到运行 SQL Server 的计算机所必需的。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果列出了重复的 SPN，则使用 Setspn 工具重命名或删除重复的 SPN。可以使用 Ldifde 来查询全局目录以确保没有重复的 SPN。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Internet Explorer 到使用非 Microsoft Web 服务的 IIS 再到 SQL Server&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果中间层是使用非 Microsoft Web 服务的 IIS，则网站必须启用了"&lt;strong&gt;集成的 Windows &lt;br /&gt;身份验证&lt;/strong&gt;"选项。（参见前面例子中的过程。）这确保了使用的是 Kerberos 协议而不是其他协议。其他 Web 服务也需要配置为模仿用户。&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 38 Internet Explorer 到使用非 Microsoft Web 服务的 IIS 到 SQL Server" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd38.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 38 Internet Explorer 到使用非 Microsoft Web 服务的 IIS 到 &lt;br /&gt;SQL Server&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;按照前面例子&amp;#8220;Internet Explorer 到 IIS 再到 SQL Server&amp;#8221;配置 Internet Explorer 6、IIS 和 SQL &lt;br /&gt;Server。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;配置非 Microsoft 的组件使用 Kerberos 协议来模仿用户。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;客户端到 SQL Server 再到 SQL Server&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 39 SQL 到 SQL 委派方案" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd39.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 39 SQL 到 SQL 委派方案&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;客户端&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证为 Kerberos 协议配置了客户端应用程序&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;将客户端配置为使用 Kerberos 身份验证。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.microsoft.com/technet/images/note.gif" /&gt;注意&lt;br /&gt;当使用 SQL Server &lt;br /&gt;时，可以使用其他工具来帮助验证使用的是 TCP/IP 和 Kerberos 身份验证：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;客户端网络工具可以用来验证客户端可以使用 TCP/IP 与 SQL Server 进行通信。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;服务器网络工具可以用来验证 SQL Server 是否正在监听 TCP/IP。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;Osql 可以用来链接到 SQL Server。然后检查服务器上的网络流量或审核日志，以确定是否是使用 Kerberos &lt;br /&gt;身份验证程序包进行连接的。如果不是，查看网络记录中的 Kerberos 错误消息（如果启用了 Kerberos &lt;br /&gt;审核，则查看客户端事件查看器中的错误消息）。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;SQL 服务 1&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证为 SQL 服务帐户 1 设置了一个 SPN&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果 SQL Server 1 在一个域用户帐户 &lt;em&gt;domain\sqlServiceAccount&lt;/em&gt; 下运行，则需要为 &lt;br /&gt;&lt;em&gt;sqlServiceAccount&lt;/em&gt; 而不是 &lt;em&gt;computername&lt;/em&gt;$ 注册一个 SPN。不这样做将会导致登录失败。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;在命令提示符下键入：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;setspn &amp;#8211;L&lt;/strong&gt; &lt;em&gt;帐户&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;其中&lt;em&gt;帐户&lt;/em&gt;是 SQL Server 在其下运行的帐户的名称。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;为了使委派正常工作，必须存在以下两个 SQL 服务帐户的 SPN：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;一个是 MSSQLSvc/&lt;em&gt;Host&lt;/em&gt;:1433 的 SPN&lt;em&gt;，&lt;/em&gt;其中 &lt;em&gt;Host&lt;/em&gt; &lt;br /&gt;是主机的名称。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;一个是 MSSQLSvc&lt;strong&gt;/&lt;/strong&gt;&lt;em&gt;FQDN&lt;/em&gt;:1433 的 SPN，其中 &lt;em&gt;FQDN&lt;/em&gt; 是运行 SQL Server &lt;br /&gt;的计算机的完全合格域名。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;在 SQL 2000 中，如果 SQL Server 帐户在本地系统帐户下运行或作为域管理员运行，则将默认注册此 SPN。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;疑难解答&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果没有列出任何 MSSQLSvc SPN 或缺少一个 SPN，则应该使用 &lt;strong&gt;setspn &amp;#8211;A&lt;/strong&gt; 命令添加适当的 SPN。这两个 SPN &lt;br /&gt;是客户端正确地身份验证以及委派凭据到运行 SQL Server 的计算机所必需的。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果列出了重复的 SPN，则使用 Setspn 工具重命名或删除重复的 SPN。可以使用 Ldifde 来查询全局目录以确保没有重复的 SPN。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证为 SQL 服务帐户 1 配置了委派&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;最佳的情况是，为委派信任 SQL 服务帐户 1，并为 SQL 服务帐户 2 的约束委派设置此帐户。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;为了验证为委派信任了 SQL 服务帐户&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;打开&amp;#8220;Active Directory 用户和计算机&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;找到 SQL 服务帐户 1 的帐户。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;右键单击此帐户，然后单击&amp;#8220;&lt;strong&gt;属性&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;如果此计算机帐户在 Windows 2000 功能级域中，验证选中了&amp;#8220;&lt;strong&gt;常规&lt;/strong&gt;&amp;#8221;选项卡上的&amp;#8220;&lt;strong&gt;信任计算机作为委派&lt;/strong&gt;&amp;#8221;选项。（参见图 &lt;br /&gt;40。）&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 40 为委派信任功能级 Windows 2000 域计算机帐户" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd40.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 40 为委派信任功能级 Windows 2000 域计算机帐户&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;如果此用户帐户在 Windows 2000 功能级域中，单击&amp;#8220;&lt;strong&gt;帐户&lt;/strong&gt;&amp;#8221;选项卡。&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 41 为委派信任服务帐户" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd41.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 41 为委派信任服务帐户&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;在&amp;#8220;&lt;strong&gt;帐户选项&lt;/strong&gt;框中&amp;#8221;，确认选中了&amp;#8220;&lt;strong&gt;敏感帐户，不能被委派&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;如果此计算机或用户帐户在 Windows Server 2003 功能级域中，单击&amp;#8220;&lt;strong&gt;委派&lt;/strong&gt;&amp;#8221;选项卡。&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;img border="0" alt="图 42 使用约束委派的 Windows Server 2003 功能级域用户帐户" src="http://www.microsoft.com/technet/images/prodtechnol/windowsserver2003/technologies/security/images/tkerbd42.gif" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="figureCaption"&gt;&lt;strong&gt;图 42 使用约束委派的 Windows Server 2003 功能级域用户帐户&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="figureRule"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;在&amp;#8220;&lt;strong&gt;委派&lt;/strong&gt;&amp;#8221;选项卡上，选择以下两个&amp;#8220;&lt;strong&gt;信任&lt;/strong&gt;&amp;#8221;选项之一：&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;要将此帐户配置为使用不受限的委派，选择&amp;#8220;&lt;strong&gt;信任此用户来委派任何服务（仅 Kerberos）&lt;/strong&gt;&amp;#8221;。不推荐选择此选项。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;要将此帐户配置为使用受限的委派，选择&amp;#8220;&lt;strong&gt;仅信任此用户来委派指定服务&lt;/strong&gt;&amp;#8221;。通过选择以下两个选项之一来配置协议转换：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;要将帐户配置为使用约束委派而不进行协议转换，选择&amp;#8220;&lt;strong&gt;仅使用 Kerberos&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;要将帐户配置为使用约束委派并且进行协议转换，选择&amp;#8220;&lt;strong&gt;使用任意身份验证协议&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.microsoft.com/technet/images/note.gif" /&gt;注意&lt;br /&gt;在使用约束委派时，确认适当的 SPN &lt;br /&gt;在此帐户可以向其提交委派凭据列表的服务之内。此 SPN 应该为 SQL 服务的 SPN。前面曾经提到过，SPN 本身由三个信息段（即 &lt;br /&gt;ServiceClass/Host:Port）组成。在这种情况下：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;MSSQLSvc 是 SQL Server 的服务类。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;SQLServer 是 &lt;em&gt;Host&lt;/em&gt;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;1433 是 SQL &lt;br /&gt;服务在其上运行的端口。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证为模仿和委派配置了中间层服务&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;当运行 SQL 2000 时，必须在运行 SQL Server 的服务器上使用 MDAC 2.6 或更高版本。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;为了验证将连接的服务器配置为模仿用户，可以使用以下 TSQL 命令：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;sp_helplinkedsrvlogin&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;此命令提供了有关对特定的连接服务器定义的用于分布式查询和远程存储过程的登录映射的信息。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;语法&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;sp_helplinkedsrvlogin [ '&lt;/strong&gt;&lt;em&gt;rmtsrvname&lt;/em&gt;&lt;strong&gt;' ] [ &lt;br /&gt;'&lt;/strong&gt;&lt;em&gt;locallogin&lt;/em&gt;&lt;strong&gt;' ]&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;参数&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;'&lt;/strong&gt;&lt;strong&gt;&lt;em&gt;rmtsrvname&lt;/em&gt;&lt;/strong&gt;&lt;strong&gt;'&lt;/strong&gt;应用登录映射的连接服务器的名称。&lt;em&gt;rmtsrvname&lt;/em&gt; 是 &lt;br /&gt;sysname，默认值为 NULL。如果此参数的值为 NULL，则将返回所有对在运行 SQL Server &lt;br /&gt;的本地计算机中定义的连接服务器定义的登录映射。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;'&lt;/strong&gt;&lt;strong&gt;&lt;em&gt;locallogin&lt;/em&gt;&lt;/strong&gt;&lt;strong&gt;'&lt;/strong&gt;SQL Server 登录到具有一个到连接服务器 &lt;br /&gt;&lt;em&gt;rmtsrvname&lt;/em&gt; 的映射的本地服务器。&lt;em&gt;locallogin&lt;/em&gt; 是 sysname，默认值为 NULL。NULL 指定了返回在 &lt;br /&gt;&lt;em&gt;rmtsrvname&lt;/em&gt;上定义的所有登录映射。如果不是 NULL，则必须已存在一个从 &lt;em&gt;locallogin&lt;/em&gt; 到 &lt;br /&gt;&lt;em&gt;rmtsrvname&lt;/em&gt;的映射。&lt;em&gt;locallogin&lt;/em&gt; 可以是一个 SQL Server &lt;br /&gt;登录或一个域用户。域用户必须被授予直接访问或通过已授予访问权限的组中的成员身份来访问 SQL Server 的权限。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;要验证连接的服务器的设置&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;执行以下 TSQL 命令：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;sp_helplinkedsrvlogin 'SQLServer2' &lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;此命令应该返回以下输出：&lt;/p&gt;Linked Server    Local Login   Is Self Mapping Remote Login  &lt;br/&gt;---------------- ------------- --------------- --------------  &lt;br/&gt;SQL Server 2            NULL          1               NULL &lt;br/&gt;(1 row(s) affected)&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;在上面的输出中，验证用户不具有相关联的远程访问以及为模仿配置了客户端。（即，将 Is Self Mapping 设置为 &lt;br /&gt;1）。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;要为模仿配置连接的服务器&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table class="numberedList" border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;1.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;展开一个服务器组，然后展开一个服务器。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;2.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;展开&amp;#8220;&lt;strong&gt;安全性&lt;/strong&gt;&amp;#8221;，右键单击&amp;#8220;&lt;strong&gt;连接的服务器&lt;/strong&gt;&amp;#8221;，选择适当的连接服务器，然后单击&amp;#8220;&lt;strong&gt;属性&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr valign="top"&gt;&lt;br /&gt;&lt;td class="listNumber" nowrap="" align="right"&gt;&lt;br /&gt;&lt;p&gt;3.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;在&amp;#8220;&lt;strong&gt;安全性&lt;/strong&gt;&amp;#8221;选项卡上，选择&amp;#8220;&lt;strong&gt;使用登录的当前安全上下文生成&lt;/strong&gt;&amp;#8221;，然后单击&amp;#8220;&lt;strong&gt;确定&lt;/strong&gt;&amp;#8221;。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;有关前面两个过程以及如何设置安全性以确保只有授权用户才能访问 SQL Server 中存储的数据和对象的更多信息，请参见 MSDN &lt;br /&gt;中的&amp;#8220;管理安全性&amp;#8221;，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkId=26092"&gt;http://go.microsoft.com/fwlink/?LinkId=26092&lt;/a&gt;。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;或者，可以通过从查询分析器运行以下命令来创建一个连接的服务器：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;sp_addlinkedsrvlogin 'SQLServer2', 'true'&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;SQL 服务 2&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;验证为 SQL 服务帐户 2 设置了一个 SPN&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果 SQL Server 2 在一个域用户帐户 &lt;em&gt;domain\sqlServiceAccount&lt;/em&gt; 下运行，则需要为 &lt;br /&gt;&lt;em&gt;sqlServiceAccount&lt;/em&gt; 而不是 &lt;em&gt;computername&lt;/em&gt;$ 注册一个 SPN。不这样做将会导致登录失败。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;在命令提示符下键入：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;setspn &amp;#8211;L&lt;/strong&gt; &lt;em&gt;帐户&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;其中&lt;em&gt;帐户&lt;/em&gt;是 SQL Server 2 在其下运行的帐户的名称。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;为了使委派正常工作，必须存在以下两个 SQL 服务帐户 2 的 SPN：&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;一个是 MSSQLSvc/&lt;em&gt;Host&lt;/em&gt;:1433 的 SPN&lt;em&gt;，&lt;/em&gt;其中 &lt;em&gt;Host&lt;/em&gt; &lt;br /&gt;是主机的名称。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;一个是 MSSQLSvc&lt;strong&gt;/&lt;/strong&gt;&lt;em&gt;FQDN&lt;/em&gt;:1433 的 SPN，其中 &lt;em&gt;FQDN&lt;/em&gt; 是运行 SQL Server 2 &lt;br /&gt;的计算机的完全合格域名。&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;在 SQL 2000 中，如果 SQL 服务帐户在本地系统帐户下运行或作为域管理员运行，则将默认注册此 SPN。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;疑难解答&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果没有列出任何 MSSQLSvc SPN 或缺少一个 SPN，则应该使用 &lt;strong&gt;setspn &amp;#8211;A&lt;/strong&gt; 命令添加适当的 SPN。这两个 SPN &lt;br /&gt;是中间层 SQL Server 正确地身份验证以及委派凭据到运行 SQL Server 的计算机所必需的。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;如果列出了重复的 SPN，则使用 Setspn 工具重命名或删除重复的 SPN。可以使用 Ldifde 来查询全局目录以确保没有重复的 SPN。&lt;/p&gt;&lt;br /&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#top"&gt;&lt;img border="0" alt="返回页首" src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" width="7" height="9" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="EUIBI"&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;附录 C：网络监视器捕获到的网络记录的示例 &lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.microsoft.com/technet/images/note.gif" /&gt;注意&lt;br /&gt;下面的记录已经过更改以删除不相关的或不必要的信息。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;在正常登录期间进行 Kerberos 身份验证&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;在这个例子中，Kerberos 客户端从 KDC 获取了一个 TGT 和会话票证。&lt;/p&gt;  FRAME: Base frame properties &lt;br/&gt;  ETHERNET: EType = Internet IP (IPv4) &lt;br/&gt;  IP: Protocol = UDP - User Datagram; Packet ID = 7027; Total IP Length = 333; Options = No Options &lt;br/&gt;  UDP: Src Port: Unknown (1676); Dst Port: Kerberos (88); Length = 313 (0x139) &lt;br/&gt;  KERBEROS: KRB_AS_REQ &lt;br/&gt;          KERBEROS: Realm (realm[2]) =multi &lt;br/&gt;          KERBEROS: Server name (sname[3]) =krbtgt/multi &lt;br/&gt;              KERBEROS: Principal name type (name-type[0]) = KRB_NT_SRV_INST (Service &amp;amp; other unique instance) &lt;br/&gt;              KERBEROS: Principal name value (name-string[1]) =krbtgt/multi &lt;br/&gt;          KERBEROS: Host addresses (addresses[9]) &lt;br/&gt;              KERBEROS: Host address =NetBIOS: IIS &lt;br/&gt;******************************************************************************* &lt;br/&gt;  FRAME: Base frame properties &lt;br/&gt;  ETHERNET: EType = Internet IP (IPv4) &lt;br/&gt;  IP: Protocol = UDP - User Datagram; Packet ID = 14792; Total IP Length = 1457; Options = No Options &lt;br/&gt;  UDP: Src Port: Kerberos (88); Dst Port: Unknown (1676); Length = 1437 (0x59D) &lt;br/&gt;  KERBEROS: KRB_AS_REP &lt;br/&gt;      KERBEROS: Client realm (crealm[3]) =MULTI.EXAMPLE.COM &lt;br/&gt;      KERBEROS: Client name (cname[4]) =aaa &lt;br/&gt;          KERBEROS: Principal name type (name-type[0]) = KRB_NT_PRINCIPAL (Name of Principal) &lt;br/&gt;          KERBEROS: Principal name value (name-string[1]) =aaa &lt;br/&gt;      KERBEROS: Ticket (ticket[5]) &lt;br/&gt;          KERBEROS: Realm (realm[1]) =MULTI.EXAMPLE.COM &lt;br/&gt;          KERBEROS: Server name (sname[2]) =krbtgt/MULTI.EXAMPLE.COM &lt;br/&gt;              KERBEROS: Principal name type (name-type[0]) = KRB_NT_SRV_INST (Service &amp;amp; other unique instance) &lt;br/&gt;              KERBEROS: Principal name value (name-string[1]) =krbtgt/MULTI.EXAMPLE.COM &lt;br/&gt;******************************************************************************* &lt;br/&gt;  FRAME: Base frame properties &lt;br/&gt;  ETHERNET: EType = Internet IP (IPv4) &lt;br/&gt;  IP: Protocol = UDP - User Datagram; Packet ID = 7028; Total IP Length = 1436; Options = No Options &lt;br/&gt;  UDP: Src Port: Unknown (1677); Dst Port: Kerberos (88); Length = 1416 (0x588) &lt;br/&gt;  KERBEROS: KRB_TGS_REQ &lt;br/&gt;      KERBEROS: Pre-authentication Data (padata[3]) &lt;br/&gt;          KERBEROS: Data type = PA-{AP|TGS}-REQ &lt;br/&gt;        KERBEROS: Ticket (ticket[3]) &lt;br/&gt;                  KERBEROS: Realm (realm[1]) =MULTI.EXAMPLE.COM &lt;br/&gt;                  KERBEROS: Server name (sname[2]) =krbtgt/MULTI.EXAMPLE.COM &lt;br/&gt;                      KERBEROS: Principal name type (name-type[0]) = KRB_NT_SRV_INST &lt;br/&gt;(Service &amp;amp; other unique instance) &lt;br/&gt;                      KERBEROS: Principal name value (name-string[1]) =krbtgt/MULTI.EXAMPLE.COM &lt;br/&gt;              KERBEROS: Realm (realm[2]) =MULTI.EXAMPLE.COM &lt;br/&gt;          KERBEROS: Server name (sname[3]) =host/iis.multi.example.com &lt;br/&gt;              KERBEROS: Principal name type (name-type[0]) = KRB_NT_SRV_HST &lt;br/&gt;(Serv with host name as instance) &lt;br/&gt;              KERBEROS: Principal name value (name-string[1]) =host/iis.multi.example.com &lt;br/&gt;******************************************************************************* &lt;br/&gt;  FRAME: Base frame properties &lt;br/&gt;  ETHERNET: EType = Internet IP (IPv4) &lt;br/&gt;  IP: Protocol = UDP - User Datagram; Packet ID = 14793; Total IP Length = 1422; Options = No Options &lt;br/&gt;  UDP: Src Port: Kerberos (88); Dst Port: Unknown (1677); Length = 1402 (0x57A) &lt;br/&gt;  KERBEROS: KRB_TGS_REP &lt;br/&gt;      KERBEROS: Client realm (crealm[3]) =MULTI.EXAMPLE.COM &lt;br/&gt;      KERBEROS: Client name (cname[4]) =aaa &lt;br/&gt;          KERBEROS: Principal name type (name-type[0]) = KRB_NT_PRINCIPAL (Name of Principal) &lt;br/&gt;          KERBEROS: Principal name value (name-string[1]) =aaa &lt;br/&gt;      KERBEROS: Ticket (ticket[5]) &lt;br/&gt;          KERBEROS: Realm (realm[1]) =MULTI.EXAMPLE.COM &lt;br/&gt;          KERBEROS: Server name (sname[2]) =host/iis.multi.example.com &lt;br/&gt;              KERBEROS: Principal name type (name-type[0]) = KRB_NT_SRV_HST (Serv with host name as instance) &lt;br/&gt;              KERBEROS: Principal name value (name-string[1]) =host/iis.multi.example.com&lt;br/&gt;&lt;br /&gt;&lt;p&gt;一个成功的登录将包含初始的 KRB_AS_REQ 和 KRB_AS_REP 来获取 TGT。（这只会在第一次身份验证时发生。在客户端拥有一个 TGT &lt;br /&gt;之后，在此 TGT 过期之前协议将不会在请求 TGT。）在交换 AS 消息之后，对于用户尝试访问的任意服务都将有一个服务票证的 KRB_TGS_REQ 和 &lt;br /&gt;KRB_TGS_REP。请注意在此交换中可以查看领域名称、发出请求的用户名、时间以及 SPN。在诊断 kerberos &lt;br /&gt;身份验证的问题时，此信息常常是必需的。上面例子的数据包在剪裁之后只显示了必需的数据。在真正的网络捕获中，将显示更多的数据，其中包括票证选项和加密类型等。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;IIS 到 SQL 的委派&lt;/strong&gt;&lt;/p&gt;+ FRAME: Base frame properties &lt;br/&gt;+ ETHERNET: EType = Internet IP (IPv4)  &lt;br/&gt;+ IP: Protocol = UDP - User Datagram; Packet ID = 7646; Total IP Length = 351; Options = No Options &lt;br/&gt;+ UDP: Src Port: Unknown (2415); Dst Port: Kerberos (88); Length = 331 (0x14B) &lt;br/&gt; KERBEROS: KRB_AS_REQ &lt;br/&gt;     KERBEROS: Request body (req-body[4]) &lt;br/&gt;    + KERBEROS: Client name (cname[1]) =Administrator &lt;br/&gt;     KERBEROS: Realm (realm[2]) =DOMXFLXD1.EXAMPLE.COM &lt;br/&gt;    + KERBEROS: Server name (sname[3]) =krbtgt/DOMXFLXD1.EXAMPLE.COM &lt;br/&gt;******************************************************************************* &lt;br/&gt;+ FRAME: Base frame properties &lt;br/&gt;+ ETHERNET: EType = Internet IP (IPv4)  &lt;br/&gt;+ IP: Protocol = UDP - User Datagram; Packet ID = 18180; Total IP Length = 1399; Options = No Options &lt;br/&gt;+ UDP: Src Port: Kerberos (88); Dst Port: Unknown (2415); Length = 1379 (0x563) &lt;br/&gt; KERBEROS: KRB_AS_REP &lt;br/&gt;   KERBEROS: Client realm (crealm[3]) =DOMXFLXD1.EXAMPLE.COM &lt;br/&gt;   KERBEROS: Client name (cname[4]) =Administrator &lt;br/&gt;     KERBEROS: Principal name value (name-string[1]) =Administrator &lt;br/&gt;   KERBEROS: Ticket (ticket[5]) &lt;br/&gt;     KERBEROS: Realm (realm[1]) =DOMXFLXD1.EXAMPLE.COM &lt;br/&gt;    + KERBEROS: Server name (sname[2]) =krbtgt/DOMXFLXD1.EXAMPLE.COM &lt;br/&gt;******************************************************************************* &lt;br/&gt;+ FRAME: Base frame properties &lt;br/&gt;+ ETHERNET: EType = Internet IP (IPv4)  &lt;br/&gt;+ IP: Protocol = UDP - User Datagram; Packet ID = 7647; Total IP Length = 1380; Options = No Options &lt;br/&gt;+ UDP: Src Port: Unknown (2416); Dst Port: Kerberos (88); Length = 1360 (0x550) &lt;br/&gt; KERBEROS: KRB_TGS_REQ &lt;br/&gt;     KERBEROS: Realm (realm[2]) =DOMXFLXD1.EXAMPLE.COM &lt;br/&gt;    + KERBEROS: Server name (sname[3]) =MSSQLSvc/xflxe3.domxflxd1.example.com:1433 &lt;br/&gt;******************************************************************************* &lt;br/&gt;+ FRAME: Base frame properties &lt;br/&gt;+ ETHERNET: EType = Internet IP (IPv4)  &lt;br/&gt;+ IP: Protocol = UDP - User Datagram; Packet ID = 18182; Total IP Length = 1370; Options = No Options &lt;br/&gt;+ UDP: Src Port: Kerberos (88); Dst Port: Unknown (2416); Length = 1350 (0x546) &lt;br/&gt; KERBEROS: KRB_TGS_REP &lt;br/&gt;   KERBEROS: Client realm (crealm[3]) =DOMXFLXD1.EXAMPLE.COM &lt;br/&gt;   KERBEROS: Client name (cname[4]) =Administrator &lt;br/&gt;     KERBEROS: Principal name type (name-type[0]) = KRB_NT_PRINCIPAL (Name of Principal) &lt;br/&gt;     KERBEROS: Principal name value (name-string[1]) =Administrator &lt;br/&gt;   KERBEROS: Ticket (ticket[5]) &lt;br/&gt;     KERBEROS: Realm (realm[1]) =DOMXFLXD1.EXAMPLE.COM &lt;br/&gt;    + KERBEROS: Server name (sname[2]) =MSSQLSvc/xflxe3.domxflxd1.example.com:1433&lt;br/&gt;&lt;br /&gt;&lt;p&gt;这是一个客户端请求特定服务（在此例中是 SQL Server）的票证的一个典型的例子。客户端（作为 Administrator &lt;br /&gt;运行的发出此请求的计算机）首先从 KDC 请求一个 TGT。然后，请求一个 SQL Server 的 SPN 的票证。所有的 SQL SPN 都属于服务类 &lt;br /&gt;MSSQLSvc。这个特定的服务器在主机 xflxe3.domxflxd1.example.com 上运行。请求被批准，并且客户端收到一个给予其运行 SQL &lt;br /&gt;Server 的服务器的票证的应答。&lt;/p&gt;&lt;br /&gt;&lt;div style="margin-top: 3px; margin-bottom: 10px;"&gt;&lt;a href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#top"&gt;&lt;img border="0" alt="返回页首" src="http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif" width="7" height="9" /&gt;&lt;/a&gt;&lt;a class="topOfPage" href="http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/security/tkerbdel.mspx#top"&gt;返回页首&lt;/a&gt;&lt;/div&gt;&lt;a name="EFJBI"&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;附录 D：相关信息&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;Microsoft TechNet 上的&amp;#8220;管理权限的身份验证&amp;#8221;，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkId=25038"&gt;http://go.microsoft.com/fwlink/?LinkId=25038&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;Microsoft 知识库中的&amp;#8220;Kerberos 常见问题解答&amp;#8221;，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkId=25039"&gt;http://go.microsoft.com/fwlink/?LinkId=25039&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;Microsoft 知识库中的&amp;#8220;Windows 2000 中的 Kerberos 用户身份验证协议概述&amp;#8221;，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkId=24922"&gt;http://go.microsoft.com/fwlink/?LinkId=24922&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td class="listBullet" valign="top"&gt;&amp;#8226;&lt;/td&gt;&lt;br /&gt;&lt;td class="listItem"&gt;&lt;br /&gt;&lt;p&gt;Windows Server 2003 技术参考，位于：&lt;a href="http://go.microsoft.com/fwlink/?LinkId=21711"&gt;http://go.microsoft.com/fwlink/?LinkId=21711&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;感谢&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Vincent Abella, Technical Editor, Microsoft Corporation&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Leon Arber, University of Illinois at Urbana-Champaign &lt;/p&gt;&lt;br /&gt;&lt;p&gt;David Christiansen, Software Design Engineer, Microsoft Corporation&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Mike Danseglio, Technical Writer, Microsoft Corporation&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Xin Fan, Software Test Engineer, Microsoft Corporation&lt;/p&gt;&lt;br /&gt;&lt;p&gt;JK Jaganathan, Program Manager, Microsoft Corporation&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Willis Johnson, Lead Programmer Writer, Microsoft Corporation&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Steve Light, Escalation Engineer, Microsoft Corporation&lt;/p&gt;&lt;br /&gt;&lt;p&gt;David Longmuir, Technical Editor, Volt &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Bala Neerumalla, Software Design Engineer, Microsoft Corporation&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Michiko Short, Technical Writer, Microsoft Corporation&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Tim Springston, Support Professional, Microsoft Corporation&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Todd Stecher, Development Lead, Microsoft Corporation&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Liqiang (Larry) Zhu, Software Design Engineer, Microsoft Corporation&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liangqihui/aggbug/2052060.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liangqihui/archive/2011/05/20/2052060.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liangqihui/archive/2011/04/12/2013234.html</id><title type="text">VPN 拨号，出现错误721,800的处理方案</title><summary type="text">VPN 拨号，出现错误721,800的处理方案客户机拨VPN出现721错误的解决办法：局域网中的机器有的可以访问VPN服务器，有的不能，仔细检查，发现出问题的机器是打了SP2补丁。解决办法如下(摘自微软网站)：以下操作均在客户机上1. 单击“开始”，然后单击“运行”。2. 在“打开”框中，键入 regedit，然后单击“确定”。3. 在注册表编辑器中，找到以下子项HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{4D36E972-E325-11CE-BFC1-08002bE10318}&lt;000x&gt;其中 &lt;000x&amp;gt</summary><published>2011-04-12T01:05:00Z</published><updated>2011-04-12T01:05:00Z</updated><author><name>挥辉</name><uri>http://www.cnblogs.com/liangqihui/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liangqihui/archive/2011/04/12/2013234.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liangqihui/archive/2011/04/12/2013234.html"/><content type="html">&lt;div&gt;&lt;div&gt;VPN 拨号，出现错误721,800的处理方案&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;客户机拨VPN出现721错误的解决办法：&amp;nbsp;&lt;/div&gt;&lt;div&gt;局域网中的机器有的可以访问VPN服务器，有的不能，仔细检查，发现出问题的机器是打了SP2补丁。&amp;nbsp;&lt;/div&gt;&lt;div&gt;解决办法如下(摘自微软网站)：&amp;nbsp;&lt;/div&gt;&lt;div&gt;以下操作均在客户机上&amp;nbsp;&lt;/div&gt;&lt;div&gt;1. 单击&amp;#8220;开始&amp;#8221;，然后单击&amp;#8220;运行&amp;#8221;。&amp;nbsp;&lt;/div&gt;&lt;div&gt;2. 在&amp;#8220;打开&amp;#8221;框中，键入 regedit，然后单击&amp;#8220;确定&amp;#8221;。&amp;nbsp;&lt;/div&gt;&lt;div&gt;3. 在注册表编辑器中，找到以下子项&amp;nbsp;&lt;/div&gt;&lt;div&gt;HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{4D36E972-E325-11CE-BFC1-08002bE10318}&amp;lt;000x&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;其中 &amp;lt;000x&amp;gt; 是 WAN 微型端口 (PPTP) 驱动程序的网络适配器。&amp;nbsp;&lt;/div&gt;&lt;div&gt;4. 在&amp;#8220;编辑&amp;#8221;菜单上，指向&amp;#8220;新建&amp;#8221;，然后单击&amp;#8220;DWORD 值&amp;#8221;。&amp;nbsp;&lt;/div&gt;&lt;div&gt;5. 键入 ValidateAddress，然后按 Enter。该值的默认设置为&amp;#8220;1&amp;#8221;（打开）；因此，您可以通过将其设置为&amp;#8220;0&amp;#8221;将其关闭。&amp;nbsp;&lt;/div&gt;&lt;div&gt;6. 退出注册表编辑器。&amp;nbsp;&lt;/div&gt;&lt;div&gt;7. 重新启动计算机。&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;windows 2000 /XP /2003 VPN 拨号，出现错误800的处理方案 连接VPN隧道时发生错误 800：不能建立VPN连接的原因一般有以下几个： 1.检查配置中的目的地的主机名或IP地址使用的是域名而不是IP地址， 由于VPN隧道需要定期进行维护，我们有可能变更VPN隧道服务器&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; windows 2000 /XP /2003 VPN 拨号，出现错误800的处理方案&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;连接VPN隧道时发生&amp;#8220;错误 800：不能建立VPN连接&amp;#8221;的原因一般有以下几个：&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;1.检查配置中的&amp;#8220;目的地的主机名或IP地址&amp;#8221;使用的是域名而不是IP地址，&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;由于VPN隧道需要定期进行维护，我们有可能变更VPN隧道服务器的IP地址，但域名不会改变。&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;2.您所在网络与我们的VPN隧道服务器没有正确的通道，&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;请尝试更换配置中的&amp;#8220;目的地的主机名或IP地址&amp;#8221;，将其调整为我们的登陆服务器IP地址或者域名。&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;3.临时性故障，多半是由于您使用的DNS服务器繁忙无法对服务器IP地址&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;或者域名的名字进行解析所引起，可以使用以下操作：开始-&amp;gt;运行-&amp;gt;打开：cmd-&amp;gt;确定，执行命令ipconfig /flushdns后再进行VPN连接尝试。&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;4.由于配置异常造成的无法连接，虽然用户没有做过任何的配置修改，&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;但由于系统内部的故障会导致配置（注册表信息）出现异常，这是Windows系统中常见的问题。&amp;nbsp;&lt;/div&gt;&lt;div&gt;处理方法是删除原VPN隧道连接的配置，重新建立一个新的VPN隧道连接即可。&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;5.检查连接的安全参数配置与配置要求一致。&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;6.您机器上的防火墙规则设置过于严格，导致无法对外进行连接，请调整或关闭所有防火墙再进行尝试。&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;7.如果有安装家庭网关的用户，也建议重启一下家庭网关设备。&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;另外一种情况：&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;由于Windows2000/XP/2003 系统缺省情况下启动了IPSec功能,因此在发起VPN请求时应禁止IPSec功能,需要更改注册表&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Windows Registry Editor Version 5.00&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters]&amp;nbsp;&lt;/div&gt;&lt;div&gt;"ProhibitIPSec"=dword:00000001&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;修改后重启操作系统即可连通。&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/liangqihui/aggbug/2013234.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liangqihui/archive/2011/04/12/2013234.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liangqihui/archive/2011/04/11/2012062.html</id><title type="text">This article provides a fix for the error: Login failed for user “. The user is not associated with a trusted SQL Server</title><summary type="text">This article provides a fix for the error:Login failed for user “. The user is not associated with a trusted SQL Server Connection. (CLIENT: 127.0.0.1)This error has several causes- one of which is an application or ODBC connection that is initiated from the same machine as the SQL server (ie the se</summary><published>2011-04-11T01:15:00Z</published><updated>2011-04-11T01:15:00Z</updated><author><name>挥辉</name><uri>http://www.cnblogs.com/liangqihui/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liangqihui/archive/2011/04/11/2012062.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liangqihui/archive/2011/04/11/2012062.html"/><content type="html">&lt;div&gt;&lt;span style="font-family: Verdana, Helvetica, Arial, sans-serif; font-size: 12px; line-height: normal; "&gt;&lt;p&gt;This article provides a fix for the error:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Login failed for user &amp;#8220;. The user is not associated with a trusted SQL Server Connection. (CLIENT: 127.0.0.1)&lt;/p&gt;&lt;p&gt;This error has several causes- one of which is an application or ODBC connection that is initiated from the same machine as the SQL server (ie the server is connecting to itself). The easiest fix for this is to temporarily or permanently disable the loopback check &amp;#8230;.&lt;/p&gt;&lt;ol style="list-style-type: decimal; line-height: 18px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 30px; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Edit the registry using regedit.&amp;nbsp; (start &amp;#8211;&amp;gt; run &amp;#8230; Regedit &amp;lt;Enter&amp;gt;)&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Browse to :&amp;nbsp; HKLM\System\CurrentControlSet\Control\LSA&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Add a DWORD value called &amp;#8220;DisableLoopbackCheck&amp;#8221;&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Set this value to 1&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;You should now find that the connection will complete successfully.&amp;nbsp; Another place to check is in event viewer.&amp;nbsp;&amp;nbsp; For this particular error we had 3 events logged in event viewer:&lt;/p&gt;&lt;p&gt;1. Failure Audit :: Login Failed for user &amp;#8216;&amp;lt;DOMAIN&amp;gt;\&amp;lt;USERNAME&amp;gt;&amp;#8217;. (CLIENT 127.0.0.1)&lt;/p&gt;&lt;p&gt;2. Error :: SSPI handshake failed with error code 0x8009030C while establishing a connection with integrated security; the connection has been closed. (CLIENT 127.0.0.1)&lt;/p&gt;&lt;p&gt;3. Failure Audit :: Login Failed for user &amp;#8220;. (CLIENT 127.0.0.1)&lt;/p&gt;&lt;p&gt;The above steps resolve this issue.&lt;/p&gt;&lt;p&gt;Below is an article that discusses in more detail disabling the loopback check.&lt;/p&gt;&lt;p&gt;http://support.microsoft.com/kb/896861&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/liangqihui/aggbug/2012062.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liangqihui/archive/2011/04/11/2012062.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liangqihui/archive/2011/03/23/1992563.html</id><title type="text">灾难恢复：当SQL Server 2005的sa密码丢失后</title><summary type="text">灾难恢复：当SQL Server 2005的sa密码丢失后原文地址：http://blogs.msdn.com/b/raulga/archive/2007/07/12/disaster-recovery-what-to-do-when-the-sa-account-password-is-lost-in-sql-server-2005.aspx参考：http://msdn.microsoft.com/en-us/library/ms188236(en-US,SQL.90).aspxhttp://msdn.microsoft.com/zh-cn/library/dd207004(v=SQL.10</summary><published>2011-03-23T07:20:00Z</published><updated>2011-03-23T07:20:00Z</updated><author><name>挥辉</name><uri>http://www.cnblogs.com/liangqihui/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liangqihui/archive/2011/03/23/1992563.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liangqihui/archive/2011/03/23/1992563.html"/><content type="html">&lt;p&gt;灾难恢复：当SQL Server 2005的sa密码丢失后&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;原文地址：&lt;/p&gt;&lt;p&gt;&lt;a href="http://blogs.msdn.com/b/raulga/archive/2007/07/12/disaster-recovery-what-to-do-when-the-sa-account-password-is-lost-in-sql-server-2005.aspx"&gt;http://blogs.msdn.com/b/raulga/archive/2007/07/12/disaster-recovery-what-to-do-when-the-sa-account-password-is-lost-in-sql-server-2005.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;参考：&lt;/p&gt;&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms188236(en-US,SQL.90).aspxhttp://msdn.microsoft.com/zh-cn/library/dd207004(v=SQL.100).aspx"&gt;http://msdn.microsoft.com/en-us/library/ms188236(en-US,SQL.90).aspx&lt;/p&gt;&lt;p&gt;http://msdn.microsoft.com/zh-cn/library/dd207004(v=SQL.100).aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;本文所载方法，同样适用于SQL Server 2008&lt;/p&gt;&lt;p&gt;-----------------------------------------------------------------------------------------------------------------&lt;/p&gt;&lt;p&gt;你也许面对过丢失SQL Server sa密码的情况。也许你有从sysadmin服务器角色中删除内建管理员（builtin\administrator）的好习惯，直到某一天你发现sysadmin角色下没人了（意味着SQL Server没管理员咯）。这时你可能会想唯一的选择就是重装SQL Server然后附加数据库，或者干脆直接访问master数据库文件&amp;#8212;&amp;#8212;这些方法都有损坏数据的危险。&lt;/p&gt;&lt;p&gt;SQL Server 2005提供一个不错的针对此种情况的灾难恢复的方法，这种方法不需要侵入master数据库而且会保持master DB中的任何对象和数据存储（比如登录信息、用户凭据或服务主密钥等）的完整&amp;#8212;&amp;#8212;当SQL Server以单用户模式启动，Windows管理员组中的成员都有权限访问SQL Server，这种模式也叫做&amp;#8220;维护模式&amp;#8221;。&lt;/p&gt;&lt;p&gt;通过单用户模式，SQL Server 2005提供一个可以让Windows管理员在无通知的情况下使用相当于sysadmin角色的权限。这就允许Windows管理员账户执行一些维护任务，比如安装补丁之类。&lt;/p&gt;&lt;p&gt;为了使SQL Server以单用户模式启动，你可以在命令行中加入&amp;#8220;-m&amp;#8221;参数。你也可以用SQL Server配置管理工具（SQL Server Configuration Manager Tool），它为文件访问和其他特权提供完全控制。如果希望使用该工具恢复你的数据库系统，请参照如下几步：&lt;/p&gt;&lt;p&gt;1.打开&amp;#8220;SQL Server 2005配置&amp;#8221;菜单下的SQL Server配置管理工具&lt;/p&gt;&lt;p&gt;2.停止你想要恢复的SQL Server实例，停止对应的SQL Server Agent服务&lt;/p&gt;&lt;p&gt;3.切换到&amp;#8220;高级&amp;#8221;选项卡，在&amp;#8220;启动参数&amp;#8221;选项的属性文本框末尾加入&amp;#8220;;-m&amp;#8221;&lt;/p&gt;&lt;p&gt;4.点击&amp;#8220;确定&amp;#8221;按钮，重启SQL Server实例&lt;/p&gt;&lt;p&gt;&lt;br /&gt;注意：请确保&amp;#8220;;&amp;#8221;和&amp;#8220;-m&amp;#8221;之间没有空格，注册参数解析器对这种问题十分敏感。你可以在ERRORLOG文件（在SQL Server安装文件夹中）中查看到&amp;#8220;SQL Server Started in single-user mode&amp;#8221;这样的记录。&lt;/p&gt;&lt;p&gt;5.SQL Server以单用户模式启动后，Windows管理员账户就可以使用sqlcmd实用程序通过Windows验证连接到SQL Server了。你可以使用Transact-SQL命令比如sp_addsrvrolemember添加已存在的登录用户（也可以新建一个只要你愿意）到sysadmin服务器角色。下面的例子添加了一个&amp;#8220;CONTOSO&amp;#8221;域下的&amp;#8220;Buck&amp;#8221;账号到sysadmin服务器角色。&lt;/p&gt;&lt;p&gt;EXEC sp_addsrvrolemember 'CONTOSO\Buck', 'sysadmin';&lt;/p&gt;&lt;p&gt;GO&lt;/p&gt;&lt;p&gt;&lt;br /&gt;注意：要在Windows7中使用sqlcmd实用程序，需要以管理员身份运行Windows命令行。&lt;/p&gt;&lt;p&gt;6.一旦sysadmin权限恢复完成，请即在SQL Server配置管理工具中清除启动参数中的&amp;#8220;;-m&amp;#8221;，然后重新启动数据库实例。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;重要安全提示：&lt;/p&gt;&lt;p&gt;本操作仅适合在没有任何其他方法可以以某种特权访问系统的情况下用来做灾难恢复。它需要能够被监控和发现的显式的和侵入性的操作，这包括：&lt;/p&gt;&lt;p&gt;l停止SQLServer并且用单用户模式重启动它&lt;/p&gt;&lt;p&gt;l通过Windows验证连接到SQL Server&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liangqihui/aggbug/1992563.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liangqihui/archive/2011/03/23/1992563.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liangqihui/archive/2011/03/23/1992564.html</id><title type="text">How to move databases between computers that are running SQL Server</title><summary type="text">How to move databases between computers that are running SQL Serverhttp://support.microsoft.com/kb/314546/en-usView products that this article applies to.This article was previously published under Q314546On This Page · SUMMARY o Step 1: How to move user databases §Method 1: Backup and res</summary><published>2011-03-23T07:20:00Z</published><updated>2011-03-23T07:20:00Z</updated><author><name>挥辉</name><uri>http://www.cnblogs.com/liangqihui/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liangqihui/archive/2011/03/23/1992564.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liangqihui/archive/2011/03/23/1992564.html"/><content type="html">&lt;p&gt;&lt;strong&gt;&lt;span style="line-height: 173%; font-family: 'Verdana','sans-serif'; color: black; font-size: 13.5pt"&gt;How to move databases between computers that are running SQL Server&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://support.microsoft.com/kb/314546/en-us"&gt;http://support.microsoft.com/kb/314546/en-us&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/314546/en-us#appliesto"&gt;View products that this article applies to.&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;This article was previously published under Q314546&lt;/span&gt;&lt;/p&gt;&lt;div style="border-bottom: #7fbae2 1.5pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm"&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 12.5pt"&gt;&lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;On This Page&lt;/a&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/314546/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #07679a; font-size: 9pt"&gt;&lt;/span&gt;&lt;/span&gt;SUMMARY&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/314546/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Step 1: How to move user databases&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Wingdings; color: black; font-size: 10pt"&gt;&amp;#167;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/314546/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Method 1: Backup and restore the user databases&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Wingdings; color: black; font-size: 10pt"&gt;&amp;#167;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/314546/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Method 2: Use the "sp_detach_db" and "sp_attach_db" stored procedures&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Wingdings; color: black; font-size: 10pt"&gt;&amp;#167;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/314546/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Method 3: Use the Import and Export Data Wizard to copy objects and data between SQL Server databases&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/314546/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Step 2: How to transfer logins and passwords&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/314546/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Step 3: How to resolve orphaned users&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/314546/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Step 4: How to move jobs, alerts, and operators&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/314546/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Step 5: How to move DTS packages&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Wingdings; color: black; font-size: 10pt"&gt;&amp;#167;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/314546/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Method 1&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Wingdings; color: black; font-size: 10pt"&gt;&amp;#167;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/314546/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Method 2&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/314546/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Step 6: Change the sp_configure settings to match the previous system&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/314546/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;MORE INFORMATION&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/314546/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;REFERENCES&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #115f87; font-size: 9pt"&gt;&lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;Expand all&lt;/a&gt; | &lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;Collapse all&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="border-bottom: #7fbae2 1.5pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm"&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: #7fbae2; color: #115f87; font-size: 9pt"&gt;&lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;SUMMARY&lt;/a&gt;&lt;/span&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="display: none; font-family: 'Verdana','sans-serif'; color: black; font-size: 12.5pt"&gt;&lt;script type="text/javascript"&gt;                            loadTOCNode(1, 'summary');                        &lt;/script&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;This step-by-step article describes how to move Microsoft SQL Server user databases and most common SQL Server components between computers that are running SQL Server.&lt;br /&gt;&lt;br /&gt;The steps that are described in this article assume that you will not move the &lt;strong&gt;master&lt;/strong&gt;, &lt;strong&gt;model&lt;/strong&gt;, &lt;strong&gt;tempdb&lt;/strong&gt;, or &lt;strong&gt;msdb&lt;/strong&gt; system databases. The steps provide different options for you to transfer logins and the most common components that are contained in the &lt;strong&gt;master&lt;/strong&gt; and &lt;strong&gt;msdb&lt;/strong&gt; databases.&lt;br /&gt;&lt;br /&gt;For information about the specific items not transferred when you follow the steps in this article, see the "More information" section.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt; For Microsoft SQL Server 2008, refer to the "Managing Metadata When Making a Database Available on Another Server Instance" topic at the following in SQL Server 2008 Books on Line Web site: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms187580.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms187580.aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Note&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; Data migration from SQL Server 2000 to Microsoft SQL Server 2000 (64-bit) is supported. You can attach a 32-bit database to a 64-bit database by using the &lt;strong&gt;sp_attach_db&lt;/strong&gt; system stored procedure or the &lt;strong&gt;sp_attach_single_file_db&lt;/strong&gt; system stored procedure, or by using backup and restore in the 32-bit Enterprise Manager. You can move databases back and forth between the 32-bit and the 64-bit versions of SQL Server. You can also migrate data from SQL Server 7.0 by using the same methods. However, downgrading data to SQL Server 7.0 from SQL Server 2000 (64-bit) is not supported. A description of each method follows. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/314546/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;Step 1: How to move user databases&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;If you are using SQL Server 2005, you can use the same method to migrate data from SQL Server 7.0 or from SQL Server 2000. However, the management tool in Microsoft SQL Server 2005 differs from the management tool in SQL Server 7.0 or in SQL Server 2000. You should use SQL Server Management Studio instead of the SQL Server Enterprise Manager. Additionally, you should use the SQL Server Import and Export Wizard (DTSWizard.exe) instead of the Data Transformation Services Import and Export Data Wizard.&lt;br /&gt;&lt;br /&gt;To move user databases, use one of the following three methods. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9.5pt"&gt;Method 1: Backup and restore the user databases&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Back up the user databases on the source server, and then restore the user databases to the destination server. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;The database can be used when the backup is in process. If users perform INSERT, UPDATE, or DELETE statements on the database after the backup is complete, the backup will not contain these changes. If you must transfer all changes, you can transfer the changes with minimal downtime if you perform both a transaction log backup and a full database backup. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Restore the full database backup on the destination server and specify the &lt;strong&gt;WITH NORECOVERY&lt;/strong&gt; option.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt; To prevent additional database modifications, direct users to quit database activity on the source server. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Perform a transaction log backup and restore the transaction log backup to the destination server by using the &lt;strong&gt;WITH RECOVERY&lt;/strong&gt; option. Downtime is limited to the time of the transaction log backup and restore. For more information, see the "RESTORE" sub-topic in the "Transact-SQL Reference" topic of SQL Server Books Online.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;The database on the destination server will be the same size as the database on the source server. To reduce the size of the database, you must either reduce the source database before you perform the backup, or reduce the destination database after the restore is completed. For more information, see the "Shrinking a Database" sub-topic in the "Creating and Maintaining Databases" heading of SQL Server Books Online. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;If you restore the database to a different file location than the source database, you must specify the &lt;strong&gt;WITH MOVE&lt;/strong&gt; option. For example, on the source server the database is in the D:\Mssql\Data folder. The destination server does not have a D drive, and you want to restore the database to the C:\Mssql\Data folder. For more information about how to restore a database to a different location, click the following article numbers to view the articles in the Microsoft Knowledge Base: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/221465"&gt;221465&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Using the WITH MOVE option with the RESTORE statement &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/304692"&gt;304692&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Moving SQL Server 7.0 databases to a new location with BACKUP and RESTORE &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;If you want to overwrite a preexisting database on the destination server, you must specify the &lt;strong&gt;WITH REPLACE&lt;/strong&gt; option. For more information, see the "RESTORE" sub-topic in the "Transact-SQL Reference" topic of SQL Server Books Online. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Depending on the version of SQL Server to which you restore, the character set, sort order, and Unicode collation may have to be the same on both the source and destination servers. For more information, see the "Note about collation" later in this section.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9.5pt"&gt;Method 2: Use the "sp_detach_db" and "sp_attach_db" stored procedures&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;To use the &lt;strong&gt;sp_detach_db&lt;/strong&gt; and &lt;strong&gt;sp_attach_db&lt;/strong&gt; stored procedures, follow these steps: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Detach the database on the source server by using the &lt;strong&gt;sp_detach_db&lt;/strong&gt; stored procedure. You must copy the .mdf, .ndf and .ldf files associated with the database to the destination server. See this table for a description of the file types: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;/p&gt;&lt;table style="margin: auto auto auto 36pt;background: #7fbae2" border="0" cellspacing="1" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 3.75pt; padding-left: 3.75pt; padding-right: 3.75pt;background: #cecfce; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 3.75pt"&gt;&lt;p align="center"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;File name extension&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 3.75pt; padding-left: 3.75pt; padding-right: 3.75pt;background: #cecfce; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 3.75pt"&gt;&lt;p align="center"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Description&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 3.75pt; padding-left: 3.75pt; padding-right: 3.75pt;background: #f7f7ff; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 3.75pt" valign="top"&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;.mdf &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 3.75pt; padding-left: 3.75pt; padding-right: 3.75pt;background: #f7f7ff; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 3.75pt" valign="top"&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Primary data file&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 3.75pt; padding-left: 3.75pt; padding-right: 3.75pt;background: #f7f7ff; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 3.75pt" valign="top"&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;.ndf &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 3.75pt; padding-left: 3.75pt; padding-right: 3.75pt;background: #f7f7ff; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 3.75pt" valign="top"&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Secondary data file&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 3.75pt; padding-left: 3.75pt; padding-right: 3.75pt;background: #f7f7ff; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 3.75pt" valign="top"&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;.ldf &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 3.75pt; padding-left: 3.75pt; padding-right: 3.75pt;background: #f7f7ff; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 3.75pt" valign="top"&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Transaction log file&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Attach the database on the destination server by using the &lt;strong&gt;sp_attach_db&lt;/strong&gt; stored procedure and point to the files you copied to the destination server in the previous step. For more information about how to use these methods, click the following article number to view the article in the Microsoft Knowledge Base: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/224071"&gt;224071&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;How to move SQL Server databases to a new location by using Detach and Attach functions in SQL Server &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;The database is inaccessible after the detach, and you cannot use the database when you copy the files. All data that is contained in the database at the point in time of the detach is moved. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;The character set, sort order, and Unicode collation may have to be the same on both servers when you use the &lt;strong&gt;Attach&lt;/strong&gt; or &lt;strong&gt;Detach&lt;/strong&gt; method. For more information, see the following note about collation.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Note about collation&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; If you move databases between SQL Server 7.0 servers by using the backup and restore or &lt;strong&gt;Attach&lt;/strong&gt; and &lt;strong&gt;Detach&lt;/strong&gt; methods, the character set, sort order and Unicode collation must be the same on both servers. If you move databases from SQL Server 7.0 to SQL Server 2000 or between SQL Server 2000 servers, the database maintains the collation of the source database. This means that if the destination server that is running SQL Server 2000 has a different collation than the source database, the destination database has a different collation than the destination server's &lt;strong&gt;master&lt;/strong&gt;, &lt;strong&gt;model&lt;/strong&gt;, &lt;strong&gt;tempdb&lt;/strong&gt;, and &lt;strong&gt;msdb&lt;/strong&gt; databases. For more information, see the "Mixed Collation Environments" topic in SQL Server 2000 Books Online. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9.5pt"&gt;Method 3: Use the Import and Export Data Wizard to copy objects and data between SQL Server databases&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;You can copy a whole database or selectively copy objects and data from the source database to the destination database by using the Data Transformation Services Import and Export Data Wizard. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;The source database may be used during the transfer. If the source database is used during the transfer, you may see some blocking when the transfer is in progress. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;When you use the Import and Export Data Wizard, the character set, sort order and collation does not have to be the same between the source server and destination server. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Because unused space in the source database does not move, the destination database may not have to be as large as the source database. Similarly, if you move only some objects, the destination database may not have to be as large as the source database. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;SQL Server 7.0 Data Transformation Services may not transfer text and image data longer than 64 KB correctly. This problem does not apply to the SQL Server 2000 version of Data Transformation Services. For more information, click the following article number to view the article in the Microsoft Knowledge Base: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/257425"&gt;257425&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;FIX: DTS Object Transfer does not transfer BLOB data greater than 64 KB &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/314546/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;Step 2: How to transfer logins and passwords&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;If you do not transfer the logins from the source server to the destination server, your current SQL Server users may be unable to log on to the destination server. You can transfer the logins and passwords by using the instructions in the following Microsoft Knowledge Base article:&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/246133"&gt;246133&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;How to transfer logins and passwords between instances of SQL Server &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;The default databases for the logins on the destination server may be different from the default database for the logins on the source server. You can change the default database for a logon with the &lt;strong&gt;sp_defaultdb&lt;/strong&gt; stored procedure. For more information, see the "sp_defaultdb" sub-topic of the "Transact-SQL Reference" topic in SQL Server Books Online.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/314546/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;Step 3: How to resolve orphaned users&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;After you transfer logins and passwords to the destination server, users may be unable to access the database. Logins are associated to users by the security identifier (SID), and if the SID is inconsistent after you move a database, SQL Server may deny the user access to the database. This problem is known as an orphaned user. If you transfer logins and passwords by using the SQL Server 2000 DTS Transfer Login feature, you will probably have orphaned users. Additionally, integrated logins granted access on a destination server in a different domain than the source server cause orphaned users. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Look for orphaned users. Open Query Analyzer on the destination server, and then run the following code in the user database that you moved: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas; color: #333333; font-size: 12pt"&gt;exec sp_change_users_login 'Report'&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;The procedure lists any orphaned users who do not link to a logon. If no users are listed, skip step 2 and step 3 and go to step 4. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Resolve the orphaned users. If a user is orphaned, database users can log on to the server successfully but will not have permission to access the database. If you try to grant the logon access to the database, you receive the following error message because the user already exists: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #333333; font-size: 9pt"&gt;Microsoft SQL-DMO (ODBC SQLState: 42000) Error 15023: User or role '%s' already exists in the current database.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;For more information about how to resolve orphaned users, click the following article numbers to view the articles in the Microsoft Knowledge Base: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/240872"&gt;240872&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;How to resolve permission issues when you move a database between servers that are running SQL Server &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;br /&gt;This article contains instructions about how to map the logins to the database users and resolves users orphaned from standard SQL Server logins and integrated logins.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/274188"&gt;274188&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;"Troubleshooting Orphaned Users" topic in Books Online is incomplete &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;br /&gt;This article describes how to use the &lt;strong&gt;sp_change_users_login&lt;/strong&gt; stored procedure to correct the orphaned users one by one. The &lt;strong&gt;sp_change_users_login&lt;/strong&gt; stored procedure only resolves users orphaned from standard SQL Server logins. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;If the database owner (&lt;strong&gt;dbo&lt;/strong&gt;) is listed as orphaned, run this code in the user database: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas; color: #333333; font-size: 12pt"&gt;exec sp_changedbowner 'sa'&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;The stored procedure changes the database owner to &lt;strong&gt;dbo&lt;/strong&gt; and corrects the issue. To change the database owner to another user, run &lt;strong&gt;sp_changedbowner&lt;/strong&gt; again with the user you want. For more information, see the "sp_changedbowner" sub-topic in the "Transact-SQL Reference" topic of SQL Server Books Online. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;If your destination server is running SQL Server 2000 Service Pack 1, the database owner user may not be in the list in the &lt;strong&gt;Users&lt;/strong&gt; folder in Enterprise Manager after you perform the attach or restore or both. For more information, click the following article number to view the article in the Microsoft Knowledge Base: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/305711"&gt;305711&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;BUG: DBO user does not display in Enterprise Manager &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;5.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;You may receive the following error message if you try to change the system administrator (&lt;strong&gt;sa&lt;/strong&gt;) password through Enterprise Manager if the logon that was mapped to &lt;strong&gt;dbo&lt;/strong&gt; on the source server does not exist on the destination server: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #333333; font-size: 9pt"&gt;Error 21776: [SQL-DMO] The name 'dbo' was not found in the Users collection. If the name is a qualified name, use [] to separate various parts of the name, and try again.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;For more information, click the following article number to view the article in the Microsoft Knowledge Base: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/218172"&gt;218172&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Cannot change SA password in Enterprise Manager &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Warning&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; If you restore or attach the database again, the database users may be re-orphaned and you have to repeat step 3. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/314546/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;Step 4: How to move jobs, alerts, and operators&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Step 4 is optional. You can generate scripts for all jobs, alerts and operators on the source server, and then run the script on the destination server. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;To move jobs, alerts and operators, follow these steps: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Open the SQL Server Enterprise Manager, and then expand the &lt;strong&gt;Management&lt;/strong&gt; folder. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Expand &lt;strong&gt;SQL Server Agent&lt;/strong&gt;, and then either right-click &lt;strong&gt;Alerts&lt;/strong&gt;, &lt;strong&gt;Jobs&lt;/strong&gt;, or &lt;strong&gt;Operators&lt;/strong&gt;. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Click &lt;strong&gt;All Tasks&lt;/strong&gt;, and then click &lt;strong&gt;Generate SQL Script&lt;/strong&gt;. For SQL Server 7.0, click &lt;strong&gt;Script All Jobs&lt;/strong&gt;, or &lt;strong&gt;Alerts&lt;/strong&gt;, or &lt;strong&gt;Operators&lt;/strong&gt;. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;You will have the option to generate scripts for &lt;strong&gt;All Alerts&lt;/strong&gt;, &lt;strong&gt;All Jobs&lt;/strong&gt; or &lt;strong&gt;All Operators&lt;/strong&gt; based on the item you right-click. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;You can move jobs, alerts and operators from SQL Server 7.0 to SQL Server 2000 or between computer servers that are running SQL Server 7.0 and SQL Server 2000. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;If you have operators that are set up for notification by SQLMail on the source server, you have to set up SQLMail on the destination server to have the same functionality. For more information, click the following article number to view the article in the Microsoft Knowledge Base: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/263556"&gt;263556&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;How to configure SQL Mail &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/314546/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;Step 5: How to move DTS packages&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Step 5 is optional. If DTS packages are stored on the source server in the SQL Server or the repository, you can move them if you want. To move DTS packages between servers, use one of the following methods. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9.5pt"&gt;Method 1&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Save the DTS package on the source server to a file, and then open the DTS package file on the destination server. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Save the package on the destination server to the SQL Server, or to the repository.&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt; You have to move each package one by one in separate files.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9.5pt"&gt;Method 2&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Open each DTS package in the DTS Designer. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;On the &lt;strong&gt;Package&lt;/strong&gt; menu, click &lt;strong&gt;Save As&lt;/strong&gt;. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Specify the destination SQL Server.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Note&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; The package may not run correctly on the new server. You may have to change the package, and change any references in the package to connections, files, data sources, profiles and other information that is located on the old source server, to reference the new destination server. You must make these changes on a package by package basis based on the design of each package. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/314546/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;Step 6: Change the sp_configure settings to match the previous system&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;You may have to change the settings so that they match the settings in the new system. For example, if the new system has more memory or if it is running different SQL instances and applications, you may want to change the min and max server memory settings or the AWE setting. You may have to change the MAXDOP setting if the number of CPU cores that are exposed to the operating system have changed. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/314546/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="border-bottom: #7fbae2 1.5pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm"&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: #7fbae2; color: #115f87; font-size: 9pt"&gt;&lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;MORE INFORMATION&lt;/a&gt;&lt;/span&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="display: none; font-family: 'Verdana','sans-serif'; color: black; font-size: 12.5pt"&gt;&lt;script type="text/javascript"&gt;                            loadTOCNode(1, 'moreinformation');                        &lt;/script&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;You may also want to move other items such as linked servers, mirroring, replication, log shipping, full-text catalogs, named backup devices, maintenance plans, database diagrams, database snapshots, credentials and proxy accounts, endpoints, server scoped DDL triggers (such as a logon trigger), or other items involving either master or msdb. Examine the source server for these configurations and take steps to set them up manually on the destination server, if you want.&lt;br /&gt;&lt;br /&gt;For more information about how to move full text components, click the following article number to view the article in the Microsoft Knowledge Base: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/240867"&gt;240867&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;How to move, copy, and back up full-text catalog folders and files &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Database diagrams and backup and restore history are not moved if you follow the steps in this article. If you must move this information, move the &lt;strong&gt;msdb&lt;/strong&gt; system database. For information about how to move the &lt;strong&gt;msdb&lt;/strong&gt; database, see the Microsoft Knowledge Base articles that are referenced in the "Step 1: How to move user databases" section. If you move the &lt;strong&gt;msdb&lt;/strong&gt; database, you do not have to follow "Step 4: How to move jobs, alerts, and operators" or "Step 5: How to move DTS packages." &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/314546/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="border-bottom: #7fbae2 1.5pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm"&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: #7fbae2; color: #115f87; font-size: 9pt"&gt;&lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;REFERENCES&lt;/a&gt;&lt;/span&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="display: none; font-family: 'Verdana','sans-serif'; color: black; font-size: 12.5pt"&gt;&lt;script type="text/javascript"&gt;                            loadTOCNode(1, 'references');                        &lt;/script&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;For more information, click the following article number to view the article in the Microsoft Knowledge Base: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/320125"&gt;320125&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;How to move a database diagram &lt;/span&gt;&lt;/p&gt;&lt;p align="center"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;How to transfer the logins and the passwords between instances of SQL Server 2005 and SQL Server 2008&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://support.microsoft.com/kb/918992/en-us"&gt;http://support.microsoft.com/kb/918992/en-us&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/918992/en-us#appliesto"&gt;View products that this article applies to.&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="border-bottom: #7fbae2 1.5pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm"&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 12.5pt"&gt;&lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;On This Page&lt;/a&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/918992/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;INTRODUCTION&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/918992/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;MORE INFORMATION&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/918992/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Remarks&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/918992/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;REFERENCES&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #115f87; font-size: 9pt"&gt;&lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;Expand all&lt;/a&gt; | &lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;Collapse all&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="border-bottom: #7fbae2 1.5pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm"&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: #7fbae2; color: #115f87; font-size: 9pt"&gt;&lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;INTRODUCTION&lt;/a&gt;&lt;/span&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="display: none; font-family: 'Verdana','sans-serif'; color: black; font-size: 12.5pt"&gt;&lt;script type="text/javascript"&gt;                            loadTOCNode(1, 'summary');                        &lt;/script&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;This article describes how to transfer the logins and the passwords between instances of Microsoft SQL Server 2005, and Microsoft SQL Server 2008, on different servers.&lt;br /&gt;&lt;br /&gt;For more information about how to transfer the logins and the passwords between instances of other versions of SQL Server, click the following article number to view the article in the Microsoft Knowledge Base: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/246133"&gt;246133&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;How to transfer logins and passwords between instances of SQL Server &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/918992/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="border-bottom: #7fbae2 1.5pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm"&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: #7fbae2; color: #115f87; font-size: 9pt"&gt;&lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;MORE INFORMATION&lt;/a&gt;&lt;/span&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="display: none; font-family: 'Verdana','sans-serif'; color: black; font-size: 12.5pt"&gt;&lt;script type="text/javascript"&gt;                            loadTOCNode(1, 'moreinformation');                        &lt;/script&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;In this article, server A and server B are different servers. Additionally, both server A and server B are running SQL Server 2005. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt; This information also applies to SQL Server 2008.&lt;br /&gt;&lt;br /&gt;After you move a database from the instance of SQL Server on server A to the instance of SQL Server on server B, the users may not be able to log in to the database on server B. Additionally, the users may receive the following error message: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #333333; font-size: 9pt"&gt;Login failed for user '&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #333333; font-size: 9pt"&gt;MyUser&lt;/span&gt;&lt;/em&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #333333; font-size: 9pt"&gt;'. (Microsoft SQL Server, Error: 18456)&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;This problem occurs because you did not transfer the logins and the passwords from the instance of SQL Server on server A to the instance of SQL Server on server B.&lt;br /&gt;&lt;br /&gt;To transfer the logins and the passwords from the instance of SQL Server on server A to the instance of SQL Server on server B, follow these steps: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;On server A, start SQL Server Management Studio, and then connect to the instance of SQL Server from which you moved the database. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Open a new Query Editor window, and then run the following script. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;----------------------&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;USE master&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;GO&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;IF OBJECT_ID ('sp_hexadecimal') IS NOT NULL&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;DROP PROCEDURE sp_hexadecimal&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;GO&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;CREATE PROCEDURE sp_hexadecimal&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @binvalue varbinary(256),&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @hexvalue varchar (514) OUTPUT&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;AS&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;DECLARE @charvalue varchar (514)&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;DECLARE @i int&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;DECLARE @length int&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;DECLARE @hexstring char(16)&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;SELECT @charvalue = '0x'&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;SELECT @i = 1&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;SELECT @length = DATALENGTH (@binvalue)&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;SELECT @hexstring = '0123456789ABCDEF'&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;WHILE (@i &amp;lt;= @length)&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;BEGIN&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;DECLARE @tempint int&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;DECLARE @firstint int&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;DECLARE @secondint int&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;SELECT @tempint = CONVERT(int, SUBSTRING(@binvalue,@i,1))&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;SELECT @firstint = FLOOR(@tempint/16)&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;SELECT @secondint = @tempint - (@firstint*16)&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;SELECT @charvalue = @charvalue +&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SUBSTRING(@hexstring, @firstint+1, 1) +&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SUBSTRING(@hexstring, @secondint+1, 1)&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;SELECT @i = @i + 1&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;END&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;SELECT @hexvalue = @charvalue&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;GO&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;IF OBJECT_ID ('sp_help_revlogin') IS NOT NULL&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;DROP PROCEDURE sp_help_revlogin&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;GO&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;CREATE PROCEDURE sp_help_revlogin @login_name sysname = NULL AS&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;DECLARE @name sysname&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;DECLARE @type varchar (1)&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;DECLARE @hasaccess int&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;DECLARE @denylogin int&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;DECLARE @is_disabled int&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;DECLARE @PWD_varbinary&amp;nbsp;varbinary (256)&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;DECLARE @PWD_string&amp;nbsp;varchar (514)&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;DECLARE @SID_varbinary varbinary (85)&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;DECLARE @SID_string varchar (514)&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;DECLARE @tmpstr&amp;nbsp;varchar (1024)&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;DECLARE @is_policy_checked varchar (3)&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;DECLARE @is_expiration_checked varchar (3)&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;DECLARE @defaultdb sysname&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;IF (@login_name IS NULL)&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;DECLARE login_curs CURSOR FOR&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT p.sid, p.name, p.type, p.is_disabled, p.default_database_name, l.hasaccess, l.denylogin FROM &lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;sys.server_principals p LEFT JOIN sys.syslogins l&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ON ( l.name = p.name ) WHERE p.type IN ( 'S', 'G', 'U' ) AND p.name &amp;lt;&amp;gt; 'sa'&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;ELSE&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;DECLARE login_curs CURSOR FOR&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT p.sid, p.name, p.type, p.is_disabled, p.default_database_name, l.hasaccess, l.denylogin FROM &lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;sys.server_principals p LEFT JOIN sys.syslogins l&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ON ( l.name = p.name ) WHERE p.type IN ( 'S', 'G', 'U' ) AND p.name = @login_name&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;OPEN login_curs&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @type, @is_disabled, @defaultdb, @hasaccess, @denylogin&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;IF (@@fetch_status = -1)&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;BEGIN&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;PRINT 'No login(s) found.'&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;CLOSE login_curs&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;DEALLOCATE login_curs&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;RETURN -1&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;END&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;SET @tmpstr = '/* sp_help_revlogin script '&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;PRINT @tmpstr&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;SET @tmpstr = '** Generated ' + CONVERT (varchar, GETDATE()) + ' on ' + @@SERVERNAME + ' */'&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;PRINT @tmpstr&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;PRINT ''&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;WHILE (@@fetch_status &amp;lt;&amp;gt; -1)&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;BEGIN&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;IF (@@fetch_status &amp;lt;&amp;gt; -2)&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;BEGIN&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRINT ''&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @tmpstr = '-- Login: ' + @name&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRINT @tmpstr&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF (@type IN ( 'G', 'U'))&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN -- NT authenticated account/group&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @tmpstr = 'CREATE LOGIN ' + QUOTENAME( @name ) + ' FROM WINDOWS WITH DEFAULT_DATABASE = [' + @defaultdb + ']'&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE BEGIN -- SQL Server authentication&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- obtain password and sid&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @PWD_varbinary = CAST( LOGINPROPERTY( @name, 'PasswordHash' ) AS varbinary (256) )&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXEC sp_hexadecimal @PWD_varbinary, @PWD_string OUT&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXEC sp_hexadecimal @SID_varbinary,@SID_string OUT&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- obtain password policy state&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT @is_policy_checked = CASE is_policy_checked WHEN 1 THEN 'ON' WHEN 0 THEN 'OFF' ELSE NULL END FROM sys.sql_logins WHERE name = @name&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT @is_expiration_checked = CASE is_expiration_checked WHEN 1 THEN 'ON' WHEN 0 THEN 'OFF' ELSE NULL END FROM sys.sql_logins WHERE name = @name&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @tmpstr = 'CREATE LOGIN ' + QUOTENAME( @name ) + ' WITH PASSWORD = ' + @PWD_string + ' HASHED, SID = ' + @SID_string + ', DEFAULT_DATABASE = [' + @defaultdb + ']'&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF ( @is_policy_checked IS NOT NULL )&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @tmpstr = @tmpstr + ', CHECK_POLICY = ' + @is_policy_checked&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF ( @is_expiration_checked IS NOT NULL )&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @tmpstr = @tmpstr + ', CHECK_EXPIRATION = ' + @is_expiration_checked&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF (@denylogin = 1)&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN -- login is denied access&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @tmpstr = @tmpstr + '; DENY CONNECT SQL TO ' + QUOTENAME( @name )&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE IF (@hasaccess = 0)&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN -- login exists but does not have access&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @tmpstr = @tmpstr + '; REVOKE CONNECT SQL TO ' + QUOTENAME( @name )&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF (@is_disabled = 1)&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN -- login is disabled&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @tmpstr = @tmpstr + '; ALTER LOGIN ' + QUOTENAME( @name ) + ' DISABLE'&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRINT @tmpstr&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;END&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @type, @is_disabled, @defaultdb, @hasaccess, @denylogin&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;&amp;nbsp;&amp;nbsp; END&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;CLOSE login_curs&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;DEALLOCATE login_curs&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;RETURN 0&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;GO&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Note&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; This script creates two stored procedures in the &lt;strong&gt;master&lt;/strong&gt; database. The two stored procedures are named the &lt;strong&gt;sp_hexadecimal&lt;/strong&gt; stored procedure and the &lt;strong&gt;sp_help_revlogin&lt;/strong&gt; stored procedure. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Run the following statement. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas; color: #333333; font-size: 12pt"&gt;EXEC sp_help_revlogin&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;The output script that is generated by the &lt;strong&gt;sp_help_revlogin&lt;/strong&gt; stored procedure is the login script. This login script creates the logins that have the original Security Identifier (SID) and the original password. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;On server B, start SQL Server Management Studio, and then connect to the instance of SQL Server to which you moved the database.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Important&lt;/strong&gt; Before you go to step 5, review the information in the "Remarks" section. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;5.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Open a new Query Editor window, and then run the output script that is generated in step 3.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/918992/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;Remarks&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Review the following information before you run the output script on the instance on server B: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Review the output script carefully. If server A and server B are in different domains, you have to modify the output script. Then, you have to replace the original domain name with the new domain name in the CREATE LOGIN statements. The integrated logins that are granted access in the new domain do not have the same SID as the logins in the original domain. Therefore, the users are orphaned from these logins. For more information about how to resolve these orphaned users, click the following article number to view the article in the Microsoft Knowledge Base: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/240872"&gt;240872&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;How to resolve permission issues when you move a database between servers that are running SQL Server &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;If server A and server B are in the same domain, the same SID is used. Therefore, the users are not likely to be orphaned. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;In the output script, the logins are created by using the encrypted password. This is because of the HASHED argument in the CREATE LOGIN statement. This argument specifies that the password that is entered after the PASSWORD argument is already hashed. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;By default, only a member of the &lt;strong&gt;sysadmin&lt;/strong&gt; fixed server role can run a SELECT statement from the &lt;strong&gt;sys.server_principals&lt;/strong&gt; view. Unless a member of the &lt;strong&gt;sysadmin&lt;/strong&gt; fixed server role grants the necessary permissions to the users, the users cannot create or run the output script. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;The steps in this article do not transfer the default database information for a particular login. This is because the default database may not always exist on server B. To define the default database for a login, use the ALTER LOGIN statement by passing in the login name and the default database as arguments. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;The sort order of server A may be case insensitive, and the sort order of server B may be case sensitive. In this case, the users must type all the letters in the passwords as uppercase letters after you transfer the logins and the passwords to the instance on server B.&lt;br /&gt;&lt;br /&gt;Alternatively, the sort order of server A may be case sensitive, and the sort order of server B may be case insensitive. In this case, the users cannot log in by using the logins and the passwords that you transfer to the instance on server B unless one of the following conditions is true: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;The original passwords contain no letters. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;All the letters in the original passwords are uppercase letters.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;The sort order of both server A and server B may be case sensitive, or the sort order of both server A and server B may be case insensitive. In these cases, the users do not experience a problem. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;A login that already is in the instance on server B may have a name that is the same as a name in the output script. In this case, you receive the following error message when you run the output script on the instance on server B: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #333333; font-size: 9pt"&gt;Msg 15025, Level 16, State 1, Line 1&lt;br /&gt;The server principal '&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #333333; font-size: 9pt"&gt;MyLogin&lt;/span&gt;&lt;/em&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #333333; font-size: 9pt"&gt;' already exists.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Similarly, a login that already is in the instance on server B may have a SID that is the same as a SID in the output script. In this case, you receive the following error message when you run the output script on the instance on server B: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #333333; font-size: 9pt"&gt;Msg 15433, Level 16, State 1, Line 1&lt;br /&gt;Supplied parameter sid is in use.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Therefore, you must do the following: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Review the output script carefully. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Examine the contents of the &lt;strong&gt;sys.server_principals&lt;/strong&gt; view in the instance on server B. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Address these error messages accordingly.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;In SQL Server 2005, the SID for a login is used as the basis for implementing database-level access. A login may have two different SIDs in two different databases on a server. In this case, the login can only access the database that has the SID that matches the SID in the &lt;strong&gt;sys.server_principals&lt;/strong&gt; view. This problem may occur if the two databases are consolidated from two different servers. To resolve this problem, manually remove the login from the database that has a SID mismatch by using the DROP USER statement. Then, add the login again by using the CREATE USER statement.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/918992/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="border-bottom: #7fbae2 1.5pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm"&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: #7fbae2; color: #115f87; font-size: 9pt"&gt;&lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;REFERENCES&lt;/a&gt;&lt;/span&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="display: none; font-family: 'Verdana','sans-serif'; color: black; font-size: 12.5pt"&gt;&lt;script type="text/javascript"&gt;                            loadTOCNode(1, 'references');                        &lt;/script&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;For more information about how to troubleshoot orphaned users, visit the following Microsoft Developer Network (MSDN) Web site: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms175475.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms175475.aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;For more information about the CREATE LOGIN statement, visit the following MSDN Web site: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms189751.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms189751.aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;For more information about the ALTER LOGIN statement, visit the following MSDN Web site: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms189828.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms189828.aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;How to resolve permission issues when you move a database between servers that are running SQL Server&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;http://support.microsoft.com/kb/240872/en-us&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/240872/en-us#appliesto"&gt;View products that this article applies to.&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;This article was previously published under Q240872&lt;/span&gt;&lt;/p&gt;&lt;div style="border-bottom: #7fbae2 1.5pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm"&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 12.5pt"&gt;&lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;On This Page&lt;/a&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/240872/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;SUMMARY&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/240872/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;MORE INFORMATION&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/240872/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Restrictions&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/240872/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Map the standard and integrated logins&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/240872/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;SQL Server 7.0 and SQL Server 2000&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/240872/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;SQL Server 2005&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/240872/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;REFERENCES&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #115f87; font-size: 9pt"&gt;&lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;Expand all&lt;/a&gt; | &lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;Collapse all&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="border-bottom: #7fbae2 1.5pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm"&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: #7fbae2; color: #115f87; font-size: 9pt"&gt;&lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;SUMMARY&lt;/a&gt;&lt;/span&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="display: none; font-family: 'Verdana','sans-serif'; color: black; font-size: 12.5pt"&gt;&lt;script type="text/javascript"&gt;                            loadTOCNode(1, 'summary');                        &lt;/script&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;This article describes how to map the standard and integrated logins in order to resolve permission issues when you move a database between servers that are running SQL Server. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/240872/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="border-bottom: #7fbae2 1.5pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm"&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: #7fbae2; color: #115f87; font-size: 9pt"&gt;&lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;MORE INFORMATION&lt;/a&gt;&lt;/span&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="display: none; font-family: 'Verdana','sans-serif'; color: black; font-size: 12.5pt"&gt;&lt;script type="text/javascript"&gt;                            loadTOCNode(1, 'moreinformation');                        &lt;/script&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;When you move a database from one server that is running SQL Server to another server that is running SQL Server, a mismatch may occur between the security identification numbers (SIDs) of the logins in the &lt;strong&gt;master&lt;/strong&gt; database and the users in the &lt;strong&gt;user&lt;/strong&gt; database. By default, SQL Server 7.0, SQL Server 2000, and SQL Server 2005 provide the &lt;strong&gt;sp_change_users_login&lt;/strong&gt; system stored procedure to map these mismatched users. However, you can only use the &lt;strong&gt;sp_change_users_login&lt;/strong&gt; stored procedure to map standard SQL Server logins and you must perform these mapping for one user at a time. For more information about the &lt;strong&gt;sp_change_users_login&lt;/strong&gt; stored procedure, see the "sp_change_users_login" topic in SQL Server 7.0,SQL Server 2000, and SQL Server 2005 Books Online.&lt;br /&gt;&lt;br /&gt;In SQL Server 7.0 or later versions, you can maintain the mapping between the logins in the &lt;strong&gt;master&lt;/strong&gt; database and the users in the &lt;strong&gt;user&lt;/strong&gt; database by using the SIDs. This mapping is required to maintain correct permissions for the logins in the &lt;strong&gt;user&lt;/strong&gt; databases. When this mapping is lost, the logins have permission issues that include but are not limited to the following: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;If the SQL Server login does not exist on the new server, and the user tries to log on, the user may receive the following error message: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #333333; font-size: 9pt"&gt;Server: Msg 18456, Level 16, State 1&lt;br /&gt;Login failed for user '%ls'.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;If the SQL Server login exists on the new server, but the SID in the &lt;strong&gt;master&lt;/strong&gt; database differs from the SID in the &lt;strong&gt;user&lt;/strong&gt; database, the user can log on to SQL Server successfully; however, when the user tries to access that database, the user may receive the following error message: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #333333; font-size: 9pt"&gt;Server: Msg 916, Level 14, State 1, Line1&lt;br /&gt;Server user '%.*ls' is not a valid user in database '%.*ls'.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Note&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; In SQL Server 2005, the user may receive the following error message: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #333333; font-size: 9pt"&gt;&lt;br /&gt;Server user '%s' is not a valid user in database '%s'. Add the user account into the database first.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;For more information about the SQL Server 7.0 Security model, see the "Microsoft SQL Server 7.0 Security" white paper. To view the white paper, visit the following Microsoft Web site: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/Aa226173(SQL.70).aspx"&gt;http://msdn2.microsoft.com/en-us/library/Aa226173(SQL.70).aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;For more information about the SQL Server 2000 Security model, click the following article number to view the article in the Microsoft Knowledge Base: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/322712"&gt;322712&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Microsoft SQL Server 2000 S322712 Security Features and Best Practices &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/240872/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;Restrictions&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;If there are users in the &lt;strong&gt;sysusers&lt;/strong&gt; table without a prefix of the computer name or the domain name that own objects, and these objects are referenced in applications by using the two-part name &lt;/span&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;username&lt;/span&gt;&lt;/em&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;.&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;objectname&lt;/span&gt;&lt;/em&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;, the application may break because the &lt;strong&gt;sp_sidmap&lt;/strong&gt; stored procedure renames these users with the prefix of the computer name or domain name as it appears in the &lt;strong&gt;sysxlogins&lt;/strong&gt; table. To work around this problem, after the &lt;strong&gt;sp_sidmap&lt;/strong&gt; stored procedure is completed, rename the users who were affected in the &lt;strong&gt;sysusers&lt;/strong&gt; table to their former names or contact your primary support provider. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;This article does not consider aliases. You must manage the aliases manually. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;If a standard SQL Server login does not exist on the new SQL Server server, you can add the login with a NULL password. You may have to change the password for these logins accordingly. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;If a user was created in the &lt;strong&gt;user&lt;/strong&gt; database with a name that differs from that which appears in the &lt;strong&gt;sysxlogins&lt;/strong&gt; table, it is impossible to know the corresponding login for that user. Therefore, before you run the &lt;strong&gt;sp_sidmap&lt;/strong&gt; stored procedure: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Transfer all the objects that this user owns to a staging database. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Drop the user, add the user that has the correct name, and then transfer back all the objects for this user.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;If a user has neither a corresponding login nor a prefix of either the local computer name or the domain name, you receive a message for this user. This message indicates that you must first add the user at the Windows level and then add it to the SQL Server as a login. After you do this, you must run the &lt;strong&gt;sp_sidmap&lt;/strong&gt; stored procedure again. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;If a user has a prefix of either the domain name or the local Windows server name, but the corresponding login does not exist in the &lt;strong&gt;sysxlogins&lt;/strong&gt; table, the stored procedure tries to add this as a new login to SQL Server. If the Windows user does not exist, it generates an output message in the results window and then manually creates the login after it first adds the Windows user. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;If there is more than one login for a user in the &lt;strong&gt;sysusers&lt;/strong&gt; table, you see an output message in the results file and it lists all the logins that have the same username. At this point, you must manually intervene to make sure that the user corresponds to only one login.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Example&lt;/strong&gt; If the &lt;strong&gt;sysusers&lt;/strong&gt; table has a user named "johndoe" and the &lt;strong&gt;sysxlogins&lt;/strong&gt; table has logins with names such as "Test\johndoe" and "Test2\johndoe", when you run the stored procedure, you receive a message that states that one of the users has more than one login and that the System Administrator must choose one. This is the only time that you must run the second stored procedure, &lt;strong&gt;sp_prefix_sysusersname&lt;/strong&gt;, which is provided in this article. Additionally, this situation is described in detail in the Readme.txt file.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/240872/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;Map the standard and integrated logins&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;After you move a database from one server that is running SQL Server server to another server that is running SQL Server server, follow these steps for minimal user intervention: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/240872/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;SQL Server 7.0 and SQL Server 2000&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Make sure that there is a login in the &lt;strong&gt;sysxlogins&lt;/strong&gt; table in the &lt;strong&gt;master&lt;/strong&gt; database for each user in the &lt;strong&gt;sysusers&lt;/strong&gt; table of the database.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt; To add a standard SQL Server login, see the "sp_addlogin" topic in SQL Server Books Online. To add an integrated SQL Server login, see the "sp_grantlogin" topic in SQL Server Books Online. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Download the MapSids.exe file, and then extract the Sp_sidmap.sql and Readme.txt files. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Log on to the server that is running SQL Server as a system administrator, and then run the Sp_sidmap.sql file in the user database. Running the Sp_sidmap.sql file creates the two stored procedures, &lt;strong&gt;sp_sidmap&lt;/strong&gt; and &lt;strong&gt;sp_prefix_sysusersname&lt;/strong&gt;. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Make sure that the database is not accessed by any other user than the one who is running the stored procedures. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;5.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Make sure that Query Analyzer displays results in text format and not in grid format. To do this, either press the &lt;strong&gt;CTRL^T&lt;/strong&gt; keys, or click &lt;strong&gt;Query&lt;/strong&gt;, and then click &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Results in Text&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;. This is very important so that you can view the results and the informational messages in one window and save the output to a text file. You might need this file later to resolve some of the mappings. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;6.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Because you cannot verify whether the parameters are passed correctly, make sure to pass them correctly to the &lt;strong&gt;sp_sidmap&lt;/strong&gt; stored procedure: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="background: yellow"&gt;EXEC sp_SidMap @old_domain = old_domain_name,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @new_domain = new_domain_name,&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @old_server = old_server_name,&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @new_server = new_server_name&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Replace the values for the old and new domain names and server names appropriately. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;7.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Save the results in a file and follow the directions that are provided in the Readme.txt file.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt; When you run these stored procedures, the &lt;strong&gt;sysusers&lt;/strong&gt; table is the only table that changes in the database. To return to a state where you started, restore the database from the backup or reattach the database.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/240872/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;SQL Server 2005&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;If you are running SQL Server 2005, use the &lt;strong&gt;WITH LOGIN&lt;/strong&gt; clause of the &lt;strong&gt;ALTER USER&lt;/strong&gt; statement to remap a user to a new login. For more information, visit the following Microsoft Developer Network (MSDN) Web site: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms176060.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms176060.aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Note&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; To use the &lt;strong&gt;WITH LOGIN&lt;/strong&gt; clause of the &lt;strong&gt;ALTER USER&lt;/strong&gt; statement, you must apply SQL Server 2005 Service Pack 2. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/240872/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="border-bottom: #7fbae2 1.5pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm"&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: #7fbae2; color: #115f87; font-size: 9pt"&gt;&lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;REFERENCES&lt;/a&gt;&lt;/span&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="display: none; font-family: 'Verdana','sans-serif'; color: black; font-size: 12.5pt"&gt;&lt;script type="text/javascript"&gt;                            loadTOCNode(1, 'references');                        &lt;/script&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;For more information, click the following article numbers to view the articles in the Microsoft Knowledge Base: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/274188"&gt;274188&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;"Troubleshooting orphaned users" topic in Books Online is incomplete &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/246133"&gt;246133&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;How to transfer logins and passwords between instances of SQL Server &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/168001"&gt;168001&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;User logon and/or permission errors after restoring dump &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/298897"&gt;298897&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;SAMPLE: Mapsids.exe Helps Map SIDs Between User and Master Databases When Database Is Moved &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;How to move SQL Server databases to a new location by using Detach and Attach functions in SQL Server&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://support.microsoft.com/kb/224071/en-us"&gt;http://support.microsoft.com/kb/224071/en-us&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/224071/en-us#appliesto"&gt;View products that this article applies to.&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;This article was previously published under Q224071&lt;/span&gt;&lt;/p&gt;&lt;div style="border-bottom: #7fbae2 1.5pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm"&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 12.5pt"&gt;&lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;On This Page&lt;/a&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/224071/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;SUMMARY&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/224071/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;MORE INFORMATION&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/224071/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Prerequisites&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/224071/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Moving user databases&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/224071/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Moving sample databases&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/224071/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Moving the model database&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Wingdings; color: black; font-size: 10pt"&gt;&amp;#167;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/224071/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;SQL Server 7.0&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Wingdings; color: black; font-size: 10pt"&gt;&amp;#167;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/224071/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;SQL Server 2005 and SQL Server 2000&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/224071/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Moving the MSDB database&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Wingdings; color: black; font-size: 10pt"&gt;&amp;#167;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/224071/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;SQL Server 7.0&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Wingdings; color: black; font-size: 10pt"&gt;&amp;#167;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/224071/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;SQL Server 2005 and SQL Server 2000&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/224071/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Moving the master database&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Wingdings; color: black; font-size: 10pt"&gt;&amp;#167;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/224071/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;SQL Server 7.0 and SQL Server 2000&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Wingdings; color: black; font-size: 10pt"&gt;&amp;#167;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/224071/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;SQL Server 2005&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/224071/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Moving the tempdb database&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/224071/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;REFERENCES&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #115f87; font-size: 9pt"&gt;&lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;Expand all&lt;/a&gt; | &lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;Collapse all&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="border-bottom: #7fbae2 1.5pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm"&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: #7fbae2; color: #115f87; font-size: 9pt"&gt;&lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;SUMMARY&lt;/a&gt;&lt;/span&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="display: none; font-family: 'Verdana','sans-serif'; color: black; font-size: 12.5pt"&gt;&lt;script type="text/javascript"&gt;                            loadTOCNode(1, 'summary');                        &lt;/script&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;This article describes how to change the location of the data files and of the log files for any Microsoft SQL Server 2005, SQL Server 2000, or SQL Server 7.0 database.&lt;br /&gt;&lt;br /&gt;For more information about how to move system databases in SQL Server 2008, see the "Moving System Databases" topic in SQL Server Books Online. To view this topic, visit the following Microsoft Developer Network (MSDN) Web site: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms345408.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms345408.aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/224071/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="border-bottom: #7fbae2 1.5pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm"&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: #7fbae2; color: #115f87; font-size: 9pt"&gt;&lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;MORE INFORMATION&lt;/a&gt;&lt;/span&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="display: none; font-family: 'Verdana','sans-serif'; color: black; font-size: 12.5pt"&gt;&lt;script type="text/javascript"&gt;                            loadTOCNode(1, 'moreinformation');                        &lt;/script&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;The steps that you must follow to change the location for some SQL Server system databases differ from the steps that you must follow to change the location for user databases. These special cases are described separately.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt; SQL Server 7.0 system databases are not compatible with SQL Server 2000. Do not attach SQL Server 7.0 &lt;strong&gt;master&lt;/strong&gt;, &lt;strong&gt;model&lt;/strong&gt;, &lt;strong&gt;msdb&lt;/strong&gt; or distribution databases to SQL Server 2000. If you are using SQL Server 2005, you can only attach databases of SQL Server 2005 to an instance. All the examples in this article assume that SQL Server is installed in the D:\Mssql7 folder. Additionally, the examples assume that all data files and log files are located in the default D:\Mssql7\Data folder. The examples move the data files and the log files for all the databases to the E:\Sqldata folder.&lt;br /&gt;&lt;br /&gt;The default data location for SQL 2000 and 2005 editions are as follows: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;For SQL Server 2000 32 bit editions, visit the following MSDN Web site:&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa176560(SQL.80).aspx"&gt;http://msdn.microsoft.com/en-us/library/aa176560(SQL.80).aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;For SQL Server 2000 64 bit editions, visit the following MSDN Web site:&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa274567(SQL.80).aspx"&gt;http://msdn.microsoft.com/en-us/library/aa274567(SQL.80).aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;For SQL Server 2005 editions, visit the following MSDN Web site:&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms143547(SQL.90).aspx"&gt;http://msdn.microsoft.com/en-us/library/ms143547(SQL.90).aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/224071/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;Prerequisites&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Make a current backup of all databases, especially the &lt;strong&gt;master&lt;/strong&gt; database, from their current location. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;You must have system administrator (sa) permissions. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;You must know the name and the current location of all data files and log files for the database.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt; You can determine the name and the current location of all files that a database uses by using the &lt;strong&gt;sp_helpfile&lt;/strong&gt; stored procedure: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;use &amp;lt;database_name&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;go&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;sp_helpfile&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; go&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;You should have exclusive access to the database that you are moving. If you experience problems during the process, and if you cannot access a database that you have moved or if you cannot start SQL Server, examine the SQL Server error log and SQL Server Books Online for more information about the errors that you are experiencing.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/224071/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;Moving user databases&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;The following example moves a database that is named &lt;strong&gt;mydb&lt;/strong&gt;. This database contains one data file, Mydb.mdf, and one log file, Mydblog.ldf. If the database that you are moving has more data files or log files, specify the files in a comma-delimited list in the &lt;strong&gt;sp_attach_db&lt;/strong&gt; stored procedure. The &lt;strong&gt;sp_detach_db&lt;/strong&gt; procedure does not change regardless of how many files the database contains because the &lt;strong&gt;sp_detach_db&lt;/strong&gt; procedure does not list the files. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Detach the database as follows: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;use master&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp; go&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp; sp_detach_db 'mydb'&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;go&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Next, copy the data files and the log files from the current location (D:\Mssql7\Data) to the new location (E:\Sqldata). &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Re-attach the database. Point to the files in the new location as follows: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;use master&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;go&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;sp_attach_db 'mydb','E:\Sqldata\mydbdata.mdf','E:\Sqldata\mydblog.ldf'&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;go&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Verify the change in file locations by using the &lt;strong&gt;sp_helpfile&lt;/strong&gt; stored procedure: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;use mydb&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp; go&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp; sp_helpfile&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp; go&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;The &lt;strong&gt;filename&lt;/strong&gt; column values should reflect the new locations.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Note&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; Microsoft Knowledge Base article 922804 describes an issue for SQL Server 2005 databases on a network-attached storage. For more information, click the following article number to view the article in the Microsoft Knowledge Base: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/922804"&gt;922804&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;FIX: After you detach a Microsoft SQL Server 2005 database that resides on network-attached storage, you cannot reattach the SQL Server database &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Consider this issue. Additionally, consider the permissions that are applied to a database when it is detached in SQL Server 2005. For more information, see the "Detaching and Attaching a Database" section of the "Securing Data and Log Files" topic in SQL Server Books Online. To view this topic, visit the following Microsoft Developer Network (MSDN) Web site: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms189128.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms189128.aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/224071/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;Moving sample databases&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;&lt;script type="text/javascript"&gt;                loadTOCNode(2, 'moreinformation');            &lt;/script&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;To move the pubs sample database and the Northwind sample database in SQL Server 2000 or in SQL Server 7.0, or to move the AdventureWorks sample database and the AdventureWorksDW sample database in SQL Server 2005, follow the same procedure for moving user databases. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/224071/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;Moving the model database&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9.5pt"&gt;SQL Server 7.0&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Make sure that the SQL Server Agent is not currently running. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Follow the same procedure for moving user databases.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9.5pt"&gt;SQL Server 2005 and SQL Server 2000&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;In SQL Server 2005 and in SQL Server 2000, you cannot detach system databases by using the &lt;strong&gt;sp_detach_db&lt;/strong&gt; stored procedure. When you try to run the &lt;strong&gt;sp_detach_db 'model'&lt;/strong&gt; statement, you receive the following error message: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #333333; font-size: 9pt"&gt;Server: Msg 7940, Level 16, State 1, Line 1 &lt;br /&gt;System databases master, model, msdb, and tempdb cannot be detached. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;To move the &lt;strong&gt;model&lt;/strong&gt; database, you must start SQL Server together with the &lt;strong&gt;-c&lt;/strong&gt; option, the &lt;strong&gt;-m&lt;/strong&gt; option, and trace flag 3608. Trace flag 3608 prevents SQL Server from recovering any database except the &lt;strong&gt;master&lt;/strong&gt; database.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt; You will not be able to access any user databases after you do this. You must not perform any operations, other than the following steps, while you use this trace flag. To add trace flag 3608 as a SQL Server startup parameter on SQL Server 2000, follow these steps: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;In SQL Server Enterprise Manager, right-click the server name, and then click &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Properties&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;On the &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;General&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; tab, click &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Startup Parameters&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Add the following new parameter: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;-c -m -T3608&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;If you are using SQL Server 2005, you can use SQL Server Configuration Manager to change the startup parameters of the SQL Server service. For more information about how to change the startup parameters, visit the following Microsoft Developer Network (MSDN) Web site: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms190737.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms190737.aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;After you add the &lt;strong&gt;-c&lt;/strong&gt; option, the &lt;strong&gt;-m&lt;/strong&gt; option, and trace flag 3608, follow these steps: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Stop and then restart SQL Server. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Detach the &lt;strong&gt;model&lt;/strong&gt; database by using the following commands: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;use master&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp; go&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp; sp_detach_db 'model'&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;go&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Move the Model.mdf and Modellog.ldf files from the D:\Mssql7\Data folder to the E:\Sqldata folder. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Reattach the &lt;strong&gt;model&lt;/strong&gt; database by using the following commands: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;use master&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp; go&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp; sp_attach_db 'model','E:\Sqldata\model.mdf','E:\Sqldata\modellog.ldf'&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;go&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;5.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Remove &lt;strong&gt;-c -m -T3608&lt;/strong&gt; from the startup parameters in SQL Server Enterprise Manager or in SQL Server Configuration Manager. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;6.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Stop and then restart SQL Server. You can verify the change in file locations by using the &lt;strong&gt;sp_helpfile&lt;/strong&gt; stored procedure. For example, use the following command: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;use model&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp; go&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp; sp_helpfile&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;go&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/224071/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;Moving the MSDB database&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9.5pt"&gt;SQL Server 7.0&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Note&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; If you are using this procedure while moving the &lt;strong&gt;msdb&lt;/strong&gt; and &lt;strong&gt;model&lt;/strong&gt; databases, you must reattach the &lt;strong&gt;model&lt;/strong&gt; database first, and then reattach the &lt;strong&gt;msdb&lt;/strong&gt; database. Follow these steps: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Make sure that the SQL Server Agent is not currently running. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Follow the same procedure for moving user databases.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Note&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; If SQL Server Agent is running, the &lt;strong&gt;sp_detach_db&lt;/strong&gt; stored procedure will not succeed and you will receive the following message: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #333333; font-size: 9pt"&gt;Server: Msg 3702, Level 16, State 1, Line 0&lt;br /&gt;Cannot drop the database 'msdb' because it is currently in use.&lt;br /&gt;DBCC execution completed. If DBCC printed error messages, contact your system administrator.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9.5pt"&gt;SQL Server 2005 and SQL Server 2000&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;To move the MSDB database, you must start SQL Server together with the &lt;strong&gt;-c&lt;/strong&gt; option, the &lt;strong&gt;-m&lt;/strong&gt; option, and trace flag 3608. Trace flag 3608 prevents SQL Server from recovering any database except the &lt;strong&gt;master&lt;/strong&gt; database. To add the &lt;strong&gt;-c&lt;/strong&gt; option, the &lt;strong&gt;-m&lt;/strong&gt; option, and trace flag 3608, follow the steps in the "Moving the model database" section. After you add the -c option, the -m option and trace flag 3608, follow these steps: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Stop, and then restart SQL Server. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Make sure that the SQL Server Agent service is not currently running. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Detach the &lt;strong&gt;msdb&lt;/strong&gt; database as follows: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;use master&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;go&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;sp_detach_db 'msdb'&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;go&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Move the Msdbdata.mdf and Msdblog.ldf files from the current location (D:\Mssql8\Data) to the new location (E:\Mssql8\Data). &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;5.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Remove &lt;strong&gt;-c -m -T3608&lt;/strong&gt; from the startup parameters box in Enterprise Manager. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;6.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Stop and then restart SQL Server.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt; If you try to reattach the &lt;strong&gt;msdb&lt;/strong&gt; database by starting SQL Server together with the &lt;strong&gt;-c&lt;/strong&gt; option, the &lt;strong&gt;-m&lt;/strong&gt; option, and trace flag 3608, you may receive the following error message: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #333333; font-size: 9pt"&gt;Server: Msg 615, Level 21, State 1, Line 1&lt;br /&gt;Could not find database table ID 3, name 'model'.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;7.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Reattach the msdb database as follows: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;use master&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;go &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;sp_attach_db 'msdb','E:\Mssql8\Data\msdbdata.mdf','E:\Mssql8\Data\msdblog.ldf' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;go&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Note&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; If you use this procedure together with moving the &lt;strong&gt;model&lt;/strong&gt; database, you are trying to detach the &lt;strong&gt;msdb&lt;/strong&gt; database while you detach the &lt;strong&gt;model&lt;/strong&gt; database. When you do this, you must reattach the &lt;strong&gt;model&lt;/strong&gt; database first, and then reattach the &lt;strong&gt;msdb&lt;/strong&gt; database. If you reattach the &lt;strong&gt;msdb&lt;/strong&gt; database first, you receive the following error message when you try to reattach the &lt;strong&gt;model&lt;/strong&gt; database: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #333333; font-size: 9pt"&gt;Msg 0, Level 11, State 0, Line 0 &lt;br /&gt;A severe error occurred on the current command. The results, if any, should be discarded. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;In this case, you must detach the &lt;strong&gt;msdb&lt;/strong&gt; database, reattach the &lt;strong&gt;model&lt;/strong&gt; database, and then reattach the &lt;strong&gt;msdb&lt;/strong&gt; database, &lt;br /&gt;&lt;br /&gt;After you move the &lt;strong&gt;msdb&lt;/strong&gt; database, you may receive the following error message: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #333333; font-size: 9pt"&gt;Error 229: EXECUTE permission denied on object '&lt;/span&gt;&lt;em&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #333333; font-size: 9pt"&gt;ObjectName&lt;/span&gt;&lt;/em&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #333333; font-size: 9pt"&gt;', database 'master', owner 'dbo'.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;This problem occurs because the ownership chain has been broken. The database owners for the &lt;strong&gt;msdb&lt;/strong&gt; database and for the master database are not the same. In this case, the ownership of the &lt;strong&gt;msdb&lt;/strong&gt; database had been changed. To work around this problem, run the following Transact-SQL statements. You can do this by using the Osql.exe command-line utility (SQL Server 7.0 and SQL Server 2000) or the Sqlcmd.exe command-line utility (SQL Server 2005): &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;USE MSDB &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;Go &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;EXEC sp_changedbowner 'sa' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;Go&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;For more information, click the following article number to view the article in the Microsoft Knowledge Base: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/272424"&gt;272424&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Object ownership chain checking across databases depends on the login that is mapped to the object owners &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/224071/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;Moving the master database&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9.5pt"&gt;SQL Server 7.0 and SQL Server 2000&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Change the path for the master data files and the master log files in SQL Server Enterprise Manager.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt; You may also change the location of the error log here. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Right-click the SQL Server in Enterprise Manager and then click &lt;strong&gt;Properties&lt;/strong&gt;. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Click &lt;strong&gt;Startup Parameters&lt;/strong&gt; to see the following entries: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;-dD:\MSSQL7\data\master.mdf&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp; -eD:\MSSQL7\log\ErrorLog&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;-lD:\MSSQL7\data\mastlog.ldf&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;-d&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; is the fully qualified path for the master database data file.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;-e&lt;/strong&gt; is the fully qualified path for the error log file.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;-l&lt;/strong&gt; is the fully qualified path for the master database log file. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Change these values as follows: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;a.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Remove the current entries for the Master.mdf and Mastlog.ldf files. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;b.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Add new entries specifying the new location: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;-dE:\SQLDATA\master.mdf&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;-lE:\SQLDATA\mastlog.ldf&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;5.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Stop SQL Server. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;6.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Copy the Master.mdf and Mastlog.ldf files to the new location (E:\Sqldata). &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;7.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Restart SQL Server.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9.5pt"&gt;SQL Server 2005&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;For more information about moving the master database and the Resource database, visit the following MSDN Web site: &lt;a href="http://msdn2.microsoft.com/en-us/library/ms345408.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms345408.aspx&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;You may experience a failure when you move the master database and the Resource database. For more information, click the following article number to view the article in the Microsoft Knowledge Base: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/918695"&gt;918695&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;You may experience a failure when you install SQL Server 2005 Service Pack 1 on an instance of SQL Server 2005 &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/224071/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;Moving the tempdb database&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;You can move &lt;strong&gt;tempdb&lt;/strong&gt; files by using the ALTER DATABASE statement. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Determine the logical file names for the &lt;strong&gt;tempdb&lt;/strong&gt; database by using &lt;strong&gt;sp_helpfile&lt;/strong&gt; as follows: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;use tempdb&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;go&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;sp_helpfile&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;go&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;The logical name for each file is contained in the &lt;strong&gt;name&lt;/strong&gt; column. This example uses the default file names of &lt;strong&gt;tempdev&lt;/strong&gt; and &lt;strong&gt;templog&lt;/strong&gt;. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: yellow; color: black; font-size: 9pt"&gt;Use the ALTER DATABASE statement, specifying the logical file name as follows: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;use master&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;go&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;Alter database tempdb modify file (name = tempdev, filename = 'E:\Sqldata\tempdb.mdf')&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;go&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;Alter database tempdb modify file (name = templog, filename = 'E:\Sqldata\templog.ldf')&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;go&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;You should receive the following messages that confirm the change: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Message 1&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;File 'tempdev' modified in sysaltfiles. Delete old file after restarting SQL Server.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Message 2&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;File 'templog' modified in sysaltfiles. Delete old file after restarting SQL Server.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Using &lt;strong&gt;sp_helpfile&lt;/strong&gt; in &lt;strong&gt;tempdb&lt;/strong&gt; will not confirm these changes until you restart SQL Server. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Stop and then restart SQL Server.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/224071/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="border-bottom: #7fbae2 1.5pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm"&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: #7fbae2; color: #115f87; font-size: 9pt"&gt;&lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;REFERENCES&lt;/a&gt;&lt;/span&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="display: none; font-family: 'Verdana','sans-serif'; color: black; font-size: 12.5pt"&gt;&lt;script type="text/javascript"&gt;                            loadTOCNode(1, 'references');                        &lt;/script&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;For more information, click the following article numbers to view the articles in the Microsoft Knowledge Base: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/912397"&gt;912397&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;The SQL Server service cannot start when you change a startup parameter for a clustered instance of SQL Server 2000 or of SQL Server 2005 to a value that is not valid &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/274188"&gt;274188&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;"Troubleshooting orphaned users" topic in Books Online is incomplete &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/246133"&gt;246133&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;How to transfer logins and passwords between instances of SQL Server &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/168001"&gt;168001&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;User logons and permissions on a database may be incorrect after the database is restored &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;br /&gt;For more information, see the following books: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Microsoft Corporation &lt;br /&gt;Microsoft SQL Server 7.0 System Administration Training Kit&lt;br /&gt;Microsoft Press, 2001&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Microsoft Corporation&lt;br /&gt;&lt;a href="http://www.microsoft.com/mspress/books/sampchap/4885e.aspx"&gt;MCSE Training Kit: Microsoft SQL Server 2000 System Administration&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;br /&gt;Microsoft Press, 2001&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Microsoft Corporation&lt;br /&gt;&lt;a href="http://www.microsoft.com/mspress/books/index/4939.aspx"&gt;Microsoft SQL Server 2000 Resource Kit&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;br /&gt;Microsoft Press, 2001&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/224071/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Note&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; This is a "FAST PUBLISH" article created directly from within the Microsoft support organization. The information contained herein is provided as-is in response to emerging issues. As a result of the speed in making it available, the materials may include typographical errors and may be revised at any time without notice. See &lt;a href="http://go.microsoft.com/fwlink/?LinkId=151500"&gt;Terms of Use&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;for other considerations.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;How to transfer a database from one collation to another collation in SQL Server&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://support.microsoft.com/kb/325335/en-us"&gt;http://support.microsoft.com/kb/325335/en-us&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/325335/en-us#appliesto"&gt;View products that this article applies to.&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;This article was previously published under Q325335&lt;/span&gt;&lt;/p&gt;&lt;div style="border-bottom: #7fbae2 1.5pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm"&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 12.5pt"&gt;&lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;On This Page&lt;/a&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/325335/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;SUMMARY&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/325335/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;What is collation?&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/325335/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;When to use the Use Collation option in DTS&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/325335/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Transfer methods that do not change a database's collation&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/325335/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Transfer a database from one collation in SQL Server 7.0 to a different collation in SQL Server 7.0&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/325335/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Transfer a database from one collation in SQL Server 7.0 to a collation in SQL Server 2000&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/325335/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Transfer a database from one collation in SQL Server 2000 to a different collation in SQL Server 2000&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/325335/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Change the collation of the master database&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Wingdings; color: black; font-size: 10pt"&gt;&amp;#167;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/325335/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Change the collation of the master database in SQL Server 2000&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Wingdings; color: black; font-size: 10pt"&gt;&amp;#167;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/325335/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Change the collation of the master database in SQL Server 7.0&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/325335/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;REFERENCES&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #115f87; font-size: 9pt"&gt;&lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;Expand all&lt;/a&gt; | &lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;Collapse all&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="border-bottom: #7fbae2 1.5pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm"&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: #7fbae2; color: #115f87; font-size: 9pt"&gt;&lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;SUMMARY&lt;/a&gt;&lt;/span&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="display: none; font-family: 'Verdana','sans-serif'; color: black; font-size: 12.5pt"&gt;&lt;script type="text/javascript"&gt;                            loadTOCNode(1, 'summary');                        &lt;/script&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;This article defines collation and describes how to transfer a database from one collation in Microsoft SQL Server to another collation in SQL Server. The same concepts and discussions about SQL Server 2000 also apply to SQL Server 2005.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/325335/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;What is collation?&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;A collation specifies the bit patterns that represent each character. It also specifies the rules that are used to sort and to compare the characters. A collation has the following characteristics: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Language &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Case sensitivity &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Accent sensitivity &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Kana sensitivity&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;To know the collation that a server is currently using, you can run the &lt;strong&gt;sp_helpsort&lt;/strong&gt; system procedure in SQL Query Analyzer.&lt;br /&gt;&lt;br /&gt;SQL Server 7.0 does not support databases that have multiple collations. Therefore, all the databases that you create in SQL Server 7.0 use the default collation. SQL Server 2000 supports multiple collations. SQL Server 2000 databases can have collations other than the default collation. Additionally, SQL Server 2000 also supports columns that have collations other than the collations of the databases where they were created.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/325335/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;When to use the Use Collation option in DTS&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;SQL Server 2000 can have multiple databases or columns that have collations other than the default collation. Because of this, a new option that is named &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Use Collation&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; is introduced in Data Transformation Services (DTS). The behavior of the &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Use Collation&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; option is determined by the type of transfer that you are performing. If you transfer data between two instances of SQL Server 2000 and you enable the &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Use Collation&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; option, the data is translated from the source code page to the destination code page. If you do not enable the Use Collation option and the code pages are the same on both instances of SQL Server 2000, a direct data transfer occurs. If the code pages are different, the data from the source code page is translated to the destination code page. However, the translation may not be correct when you transfer the data.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt; The collation is important if the collation is used for the data itself and if a column uses the COLLATE clause. The &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Use Collation&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; option determines whether a code page translation occurs when the data is transferred from one collation to another collation. The &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Use Collation&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; option does not affect whether the COLLATE property of a column definition is set. Therefore, if a source table contains a column that was created with a specific collation by using the COLLATE clause, that collation persists when data is transferred, regardless of whether the &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Use Collate&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; option is enabled in the Data Transformation Services Wizard.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/325335/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;Transfer methods that do not change a database's collation&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;The following methods do not change a database's collation: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Backup and restore: Restoring a database on a server that has a different collation than the server that is used for the backup does not convert the restored database to the new collation. The database collation remains as is. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Detach and reattach: If you detach a database that was created with one collation and you reattach the database to another server that has a different collation, the collation of the database does not change. The collation of the database remains as is. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Copy Database Wizard: The Copy Database Wizard essentially automates the process of detaching and reattaching. The collation of the database remains as is.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt; The Copy Database Wizard is available in SQL Server 2000. However, the Copy Database Wizard is not available in SQL Server 7.0.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/325335/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;Transfer a database from one collation in SQL Server 7.0 to a different collation in SQL Server 7.0&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;To change the collation of a database between two computers that are running SQL Server 7.0, you must create the user database and all the objects on the destination server and then transfer the data by using DTS or the bcp utility. &lt;br /&gt;&lt;br /&gt;To transfer a database from a computer that is running SQL Server 7.0 to a computer that is running SQL Server 7.0 and that has a different collation, follow these steps: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Back up the source database. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Use SQL Server Enterprise Manager to create scripts for all the objects in the source database. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;To export the data from all the tables in the database, use DTS or the bcp utility. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Create a new database on the destination server by using SQL Server Enterprise Manager or the CREATE DATABASE statement.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt; When you use the CREATE DATABASE statement, the database will have the same collation as the computer that is running SQL Server 7.0. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;5.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Use SQL Query Analyzer to run the scripts that you created in step 2 to re-create all the objects in the destination database. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt; The tables and columns will have the same collation as the computer that is running SQL Server 7.0. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;6.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Import the data in the destination tables by using DTS or the bcp utility.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/325335/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;Transfer a database from one collation in SQL Server 7.0 to a collation in SQL Server 2000&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;To change the collation of a database between SQL Server 7.0 and SQL Server 2000, you must create the database, the columns, or both with the appropriate collation on the destination server before you transfer the data. However, you can use DTS to drop and then re-create the objects when you transfer data from SQL Server 7.0 to SQL Server 2000. When doing so, you must enable the &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Use Collation&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; option in DTS. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt; Do not use the DTS utility that is included in SQL Server 7.0 to transfer all objects to or from a computer that is running SQL Server 2000. You must use the DTS utility that is included in SQL Server 2000 when you have to transfer data between SQL Server 7.0 and SQL Server 2000.&lt;br /&gt;&lt;br /&gt;To transfer a database from one collation in SQL Server 7.0 to a collation in SQL Server 2000, follow these steps: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Back up the source database. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Use SQL Server Enterprise Manager to create scripts for all the objects in the source database. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;If the columns must have a different collation than the default collation on the destination database, make the required collation changes to the appropriate columns in the scripts. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Create a new database on the destination server with the appropriate collation. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;5.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Use SQL Query Analyzer to run the scripts that you created in step 2 on the destination server to re-create all objects in the database. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt; The new tables and columns have the same collation as the database unless you specify a different collation for the columns. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;6.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Use DTS or the bcp utility to transfer the data.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt; If you use DTS, verify the following: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Make sure that the &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Use Collation&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; option is enabled when you transfer data from SQL Server 7.0 to SQL Server 2000. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Because the objects are already created on the destination server with the appropriate collation, disable the &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Create Destination Objects First&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; option.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/325335/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;Transfer a database from one collation in SQL Server 2000 to a different collation in SQL Server 2000&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;To transfer a database from one collation in SQL Server 2000 to a different collation in SQL Server 2000, follow these steps: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Back up the source database. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Note if any columns use the COLLATE clause. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Create a new database on the destination server with the appropriate collation. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;If no columns use the COLLATE clause, use DTS to transfer the data to the destination server. To do so, enable the &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Use Collation&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; option for code page translation and to transfer the data to the new collation on the destination database. If any columns use the COLLATE clause, follow these steps: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;a.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Generate scripts for all the objects (not including the indexes, the triggers, the primary keys, the foreign keys, the default settings, and the constraints). Additionally, make sure that you enable the &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Only script 7.0 compatible features&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; option to remove the COLLATE clause from the script.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt; When you use the &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Only script 7.0 compatible features&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; option, you can change the collation. However, any new SQL Server 2000 options (including user-defined functions, extended properties, the INSTEAD OF trigger, and indexes on views) will not be considered when the scripts are generated. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;b.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Run the scripts from step a on the destination database to create the objects with the destination database collation. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;c.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Use DTS to transfer only the data from the source database. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;d.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;After the data is successfully transferred, generate scripts for all the constraints, foreign keys, primary keys, and indexes from the source database.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt; On the &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Formatting&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; tab of the &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Generate SQL Scripts&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; dialog box, click to clear the following check boxes: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Wingdings; color: black; font-size: 10pt"&gt;&amp;#167;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Generate the CREATE &amp;lt;object&amp;gt; command for each object&lt;/span&gt;&lt;/strong&gt; &lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Wingdings; color: black; font-size: 10pt"&gt;&amp;#167;&amp;nbsp;&lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Generate the DROP &amp;lt;object&amp;gt; command for each object&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;e.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Run the scripts from step d on the destination database. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/325335/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;Change the collation of the master database&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;If you want to change the collation of the &lt;strong&gt;master&lt;/strong&gt; database, you must rebuild the &lt;strong&gt;master&lt;/strong&gt; database. When you rebuild the &lt;strong&gt;master&lt;/strong&gt; database, you essentially create a new &lt;strong&gt;master&lt;/strong&gt; database. Therefore, consider the following items before you rebuild the &lt;strong&gt;master&lt;/strong&gt; database: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Make sure to make a valid backup of the current &lt;strong&gt;master&lt;/strong&gt; database. When you rebuild the &lt;strong&gt;master&lt;/strong&gt; database, the &lt;strong&gt;msdb&lt;/strong&gt; database and the &lt;strong&gt;model&lt;/strong&gt; database are also re-created. Therefore, you must back up the &lt;strong&gt;msdb&lt;/strong&gt; database and the &lt;strong&gt;model&lt;/strong&gt; database before you rebuild the &lt;strong&gt;master&lt;/strong&gt; database. The &lt;strong&gt;msdb&lt;/strong&gt; database is the system database that is used to store your SQL Server jobs, alerts, operators, and DTS packages. The &lt;strong&gt;model&lt;/strong&gt; database is the template database that is used when you create a new database. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Because rebuilding the &lt;strong&gt;master&lt;/strong&gt; database creates a new &lt;strong&gt;master&lt;/strong&gt; database, you must re-enter the existing login information after you rebuild the &lt;strong&gt;master&lt;/strong&gt; database. Therefore, you must export the login information before you rebuild the &lt;strong&gt;master&lt;/strong&gt; database. After you re-create the &lt;strong&gt;master&lt;/strong&gt; database, import the login information. For more information about how to export login information, click the following article number to view the article in the Microsoft Knowledge Base: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/246133"&gt;246133&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;How to transfer logins and passwords between instances of SQL Server &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Because the &lt;strong&gt;msdb&lt;/strong&gt; database is rebuilt when you rebuild the &lt;strong&gt;master&lt;/strong&gt; database, you must generate scripts for all the jobs, alerts, and operators before you rebuild the &lt;strong&gt;master&lt;/strong&gt; database. Additionally, you must make sure that you move all DTS packages. For more information, click the following article number to view the article in the Microsoft Knowledge Base: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/314546"&gt;314546&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;How to move databases between computers that are running SQL Server &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Because the &lt;strong&gt;model&lt;/strong&gt; database is rebuilt when you rebuild the &lt;strong&gt;master&lt;/strong&gt; database, any changes that were previously made to the &lt;strong&gt;model&lt;/strong&gt; database must either be noted, scripted, or exported before you rebuild the &lt;strong&gt;master&lt;/strong&gt; database. After the &lt;strong&gt;model&lt;/strong&gt; database is rebuilt, reapply any noted changes.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9.5pt"&gt;Change the collation of the master database in SQL Server 2000&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Before you change the collation of the &lt;strong&gt;master&lt;/strong&gt; database, follow these steps: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;When you rebuild the master database, it does not automatically recall all the databases that were created before the database is rebuilt. Therefore, all databases must be restored from a backup or if the files are still on disk, you can reattach the databases by using the &lt;strong&gt;sp_attach_db&lt;/strong&gt; system stored procedure. Make sure that you have all the necessary information to reattach existing databases before you rebuild the &lt;strong&gt;master&lt;/strong&gt; database. For more information about the &lt;strong&gt;sp_attach_db&lt;/strong&gt; system stored procedure, visit the following MSDN Web site: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa259611(SQL.80).aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa259611(SQL.80).aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;When you rebuild the &lt;strong&gt;master&lt;/strong&gt; database, only the collation of the &lt;strong&gt;master&lt;/strong&gt; database, the &lt;strong&gt;model&lt;/strong&gt; database, and the &lt;strong&gt;msdb&lt;/strong&gt; database is changed. The collation of the user databases is not changed. To change the collation of an existing user database or to create a new database with the appropriate collation, use the ALTER DATABASE command, and then use DTS or the bcp utility to transfer the data to the new database.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt; If you use the ALTER DATABASE command in SQL Server 2000 to change the collation of a database, the collation of the columns in the tables is not automatically changed. To change the collation of the columns, use the ALTER TABLE command and the ALTER COLUMN command. If you are using DTS, you can create the table and the columns with the appropriate collation before you transfer the data or you can use the &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Use Collation&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; option. If you are using DTS and the table with the appropriate collation already exists, make sure to disable the &lt;/span&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Drop Existing Objects First&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; option before you run the package. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9.5pt"&gt;Change the collation of the master database in SQL Server 7.0&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Before you change the collation of the &lt;strong&gt;master&lt;/strong&gt; database, follow these steps: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;SQL Server 7.0 does not support having databases with collations other than the default collation. Therefore, before you rebuild the &lt;strong&gt;master&lt;/strong&gt; database, export all the data from the user databases. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Generate the scripts for all the objects in the database. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;3.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Re-create the &lt;strong&gt;master&lt;/strong&gt; database with the appropriate collation. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;4.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Create the new databases. The new databases are automatically created with the new default collation. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;5.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Run the previously saved scripts to re-create the objects, and then import the data that you previously exported.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/325335/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="border-bottom: #7fbae2 1.5pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm"&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: #7fbae2; color: #115f87; font-size: 9pt"&gt;&lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;REFERENCES&lt;/a&gt;&lt;/span&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="display: none; font-family: 'Verdana','sans-serif'; color: black; font-size: 12.5pt"&gt;&lt;script type="text/javascript"&gt;                            loadTOCNode(1, 'references');                        &lt;/script&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;For more information about collations, visit the following Microsoft Web sites: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa214408(SQL.80).aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa214408(SQL.80).aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa174903(SQL.80).aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa174903(SQL.80).aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa258237(SQL.80).aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa258237(SQL.80).aspx&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;How to transfer logins and passwords between instances of SQL Server&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://support.microsoft.com/kb/246133/en-us"&gt;http://support.microsoft.com/kb/246133/en-us&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/246133/en-us#appliesto"&gt;View products that this article applies to.&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;This article was previously published under Q246133&lt;/span&gt;&lt;/p&gt;&lt;div style="border-bottom: #7fbae2 1.5pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm"&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 12.5pt"&gt;&lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;On This Page&lt;/a&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/246133/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;SUMMARY&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/246133/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;How to transfer logins and passwords between servers that are running SQL Server 7.0 &lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/246133/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;How to transfer logins and passwords from SQL Server 7.0 to SQL Server 2000 or between servers that are running SQL Server 2000&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/246133/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;How to transfer logins and passwords between instances of SQL Server 2005&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/246133/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;A complete resolution to transfer logins and passwords between different versions of SQL Server&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/246133/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Method 1&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/246133/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Method 2&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: black; font-size: 10pt"&gt;o&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/246133/en-us"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Remarks&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #115f87; font-size: 9pt"&gt;&lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;Expand all&lt;/a&gt; | &lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;Collapse all&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;&lt;div style="border-bottom: #7fbae2 1.5pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm"&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif';background: #7fbae2; color: #115f87; font-size: 9pt"&gt;&lt;a href="http://www.cnblogs.com/liangqihui/admin/javascript:void(0);"&gt;SUMMARY&lt;/a&gt;&lt;/span&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="display: none; font-family: 'Verdana','sans-serif'; color: black; font-size: 12.5pt"&gt;&lt;script type="text/javascript"&gt;                            loadTOCNode(1, 'summary');                        &lt;/script&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;After you move databases to a new server, users may not be able to log in to the new server. Instead, they receive the following error message: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #333333; font-size: 9pt"&gt;Msg 18456, Level 16, State 1&lt;br /&gt;Login failed for user '%ls'. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;You must transfer the logins and passwords to the new server. This article describes how you transfer logins and passwords to a new server. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/246133/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;How to transfer logins and passwords between servers that are running SQL Server 7.0 &lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;&lt;script type="text/javascript"&gt;                loadTOCNode(2, 'summary');            &lt;/script&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;The SQL Server 7.0 Data Transformation Services (DTS) Object Transfer feature transfers logins and users between two servers, but it does not transfer the passwords for SQL Server authenticated logins. To transfer logins and passwords from a server that is running SQL Server 7.0 to another server that is running SQL Server 7.0, follow the steps in the "A complete resolution to transfer logins and passwords between different versions of SQL Server" section. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/246133/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;How to transfer logins and passwords from SQL Server 7.0 to SQL Server 2000 or between servers that are running SQL Server 2000&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;&lt;script type="text/javascript"&gt;                loadTOCNode(2, 'summary');            &lt;/script&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;To transfer logins and passwords from a SQL Server 7.0 server to an instance of SQL Server 2000, or between two instances of SQL Server 2000, you can use the new DTS Package Transfer Logins Task in SQL Server 2000. To do this, follow these steps: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Connect to the SQL Server 2000 destination server, move to the Data Transformation Services in SQL Server Enterprise Manager, expand the folder, right-click &lt;strong&gt;Local Packages&lt;/strong&gt;, and then click &lt;strong&gt;New Package&lt;/strong&gt;. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;After the DTS package designer opens, click &lt;strong&gt;Transfer Logins Task&lt;/strong&gt; on the &lt;strong&gt;Task&lt;/strong&gt; menu. Complete the information about the &lt;strong&gt;Source&lt;/strong&gt;, &lt;strong&gt;Destination&lt;/strong&gt; and &lt;strong&gt;Logins&lt;/strong&gt; tabs as appropriate. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Important&lt;/strong&gt; The SQL Server 2000 destination server cannot be running the 64-bit version of SQL Server 2000. DTS components for the 64-bit version of SQL Server 2000 are not available. If you are importing logins from an instance of SQL Server that is on a separate computer, your instance of SQL Server will must be running under a Domain Account to complete the task. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note&lt;/strong&gt; The DTS method will transfer the passwords but not the original SID. If a login is not created by using the original SID and user databases are also transferred to a new server, the database users will be orphaned from the login. To transfer the original SID and bypass the orphaned users, follow the steps in the "A complete resolution to transfer logins and passwords between different versions of SQL Server" section.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/246133/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;How to transfer logins and passwords between instances of SQL Server 2005&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;&lt;script type="text/javascript"&gt;                loadTOCNode(2, 'summary');            &lt;/script&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;For more information about how to transfer the logins and passwords between instances of SQL Server 2005, click the following article number to view the article in the Microsoft Knowledge Base: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/918992"&gt;918992&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;How to transfer the logins and the passwords between instances of SQL Server 2005 &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/246133/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;A complete resolution to transfer logins and passwords between different versions of SQL Server&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;&lt;script type="text/javascript"&gt;                loadTOCNode(2, 'summary');            &lt;/script&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;To do this, use one of the following methods.&lt;br /&gt;&lt;strong&gt;Notes&lt;/strong&gt; &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;The scripts in the following methods create two stored procedures that are named the &lt;strong&gt;sp_hexadecimal&lt;/strong&gt; stored procedure and the &lt;strong&gt;sp_help_revlogin&lt;/strong&gt; stored procedure in your &lt;strong&gt;master&lt;/strong&gt; database. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;The scripts are dependent on SQL Server system tables. The structure of these tables may change between versions of SQL Server. Selecting directly from system tables is discouraged. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Review the remarks at the end of this article for important information about the steps in the methods. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Method 2 assigns logins to roles.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/246133/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;Method 1&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;&lt;script type="text/javascript"&gt;                loadTOCNode(2, 'summary');            &lt;/script&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;This method applies to the following scenarios: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;You transfer logins and passwords from SQL Server 7.0 to SQL Server 7.0. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;You transfer logins and passwords from SQL Server 7.0 to SQL Server 2000. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;You transfer logins and passwords between servers that are running SQL Server 2000.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;To transfer logins and passwords between different versions of SQL Server, follow these steps: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Run the following script on the source SQL Server. Continue to step 2 when you finish creating the &lt;strong&gt;sp_help_revlogin&lt;/strong&gt; stored procedure. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;----- Begin Script, Create sp_help_revlogin procedure -----&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;USE master&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;GO&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;IF OBJECT_ID ('sp_hexadecimal') IS NOT NULL&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;DROP PROCEDURE sp_hexadecimal&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;GO&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;CREATE PROCEDURE sp_hexadecimal&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @binvalue varbinary(256),&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @hexvalue varchar(256) OUTPUT&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;AS&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DECLARE @charvalue varchar(256)&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DECLARE @i int&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DECLARE @length int&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DECLARE @hexstring char(16)&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SELECT @charvalue = '0x'&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SELECT @i = 1&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SELECT @length = DATALENGTH (@binvalue)&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SELECT @hexstring = '0123456789ABCDEF' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;WHILE (@i &amp;lt;= @length) &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;BEGIN&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;DECLARE @tempint int&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;DECLARE @firstint int&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;DECLARE @secondint int&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;SELECT @tempint = CONVERT(int, SUBSTRING(@binvalue,@i,1))&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;SELECT @firstint = FLOOR(@tempint/16)&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;SELECT @secondint = @tempint - (@firstint*16)&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;SELECT @charvalue = @charvalue +&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SUBSTRING(@hexstring, @firstint+1, 1) +&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SUBSTRING(@hexstring, @secondint+1, 1)&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;SELECT @i = @i + 1&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;END&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SELECT @hexvalue = @charvalue&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;GO&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;IF OBJECT_ID ('sp_help_revlogin') IS NOT NULL&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;DROP PROCEDURE sp_help_revlogin &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;GO&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;CREATE PROCEDURE sp_help_revlogin @login_name sysname = NULL AS&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DECLARE @name&amp;nbsp;&amp;nbsp;&amp;nbsp; sysname&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DECLARE @xstatus int&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DECLARE @binpwd&amp;nbsp;varbinary (256)&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DECLARE @txtpwd &amp;nbsp;sysname&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DECLARE @tmpstr&amp;nbsp;varchar (256)&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DECLARE @SID_varbinary varbinary(85)&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DECLARE @SID_string varchar(256)&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;IF (@login_name IS NULL)&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;DECLARE login_curs CURSOR FOR &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT sid, name, xstatus, password FROM master..sysxlogins &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE srvid IS NULL AND name &amp;lt;&amp;gt; 'sa'&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;ELSE&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;DECLARE login_curs CURSOR FOR &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT sid, name, xstatus, password FROM master..sysxlogins &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE srvid IS NULL AND name = @login_name&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;OPEN login_curs &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwd&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;IF (@@fetch_status = -1)&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;BEGIN&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;PRINT 'No login(s) found.'&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;CLOSE login_curs &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;DEALLOCATE login_curs &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;RETURN -1&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;END&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SET @tmpstr = '/* sp_help_revlogin script ' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT @tmpstr&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SET @tmpstr = '** Generated ' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;+ CONVERT (varchar, GETDATE()) + ' on ' + @@SERVERNAME + ' */'&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT @tmpstr&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT ''&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT 'DECLARE @pwd sysname'&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;WHILE (@@fetch_status &amp;lt;&amp;gt; -1)&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;BEGIN&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;IF (@@fetch_status &amp;lt;&amp;gt; -2)&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;BEGIN&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRINT ''&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @tmpstr = '-- Login: ' + @name&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRINT @tmpstr &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF (@xstatus &amp;amp; 4) = 4&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN -- NT authenticated account/group&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF (@xstatus &amp;amp; 1) = 1&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN -- NT login is denied access&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @tmpstr = 'EXEC master..sp_denylogin ''' + @name + ''''&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRINT @tmpstr &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE BEGIN -- NT login has access&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @tmpstr = 'EXEC master..sp_grantlogin ''' + @name + ''''&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRINT @tmpstr &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE BEGIN -- SQL Server authentication&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF (@binpwd IS NOT NULL)&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BEGIN -- Non-null password&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXEC sp_hexadecimal @binpwd, @txtpwd OUT&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IF (@xstatus &amp;amp; 2048) = 2048&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @tmpstr = 'SET @pwd = CONVERT (varchar(256), ' + @txtpwd + ')'&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @tmpstr = 'SET @pwd = CONVERT (varbinary(256), ' + @txtpwd + ')'&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRINT @tmpstr&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;EXEC sp_hexadecimal @SID_varbinary,@SID_string OUT&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @tmpstr = 'EXEC master..sp_addlogin ''' + @name &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + ''', @pwd, @sid = ' + @SID_string + ', @encryptopt = '&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE BEGIN &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- Null password&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;EXEC sp_hexadecimal @SID_varbinary,@SID_string OUT&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SET @tmpstr = 'EXEC master..sp_addlogin ''' + @name &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + ''', NULL, @sid = ' + @SID_string + ', @encryptopt = '&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF (@xstatus &amp;amp; 2048) = 2048&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -- login upgraded from 6.5&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @tmpstr = @tmpstr + '''skip_encryption_old''' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SET @tmpstr = @tmpstr + '''skip_encryption'''&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRINT @tmpstr &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;END&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwd&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;END&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;CLOSE login_curs &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DEALLOCATE login_curs &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;RETURN 0&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;GO&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;&amp;nbsp;----- End Script -----&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;After you create the &lt;strong&gt;sp_help_revlogin&lt;/strong&gt; stored procedure, run the &lt;strong&gt;sp_help_revlogin&lt;/strong&gt; procedure from Query Analyzer on the source server. The &lt;strong&gt;sp_help_revlogin&lt;/strong&gt; stored procedure can be used on both SQL Server 7.0 and SQL Server 2000. The output of the &lt;strong&gt;sp_help_revlogin&lt;/strong&gt; stored procedure is login scripts that create logins with the original SID and password. Save the output, and then paste and run it in Query Analyzer on the destination SQL Server. For example: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;EXEC master..sp_help_revlogin&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/246133/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;Method 2&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;&lt;script type="text/javascript"&gt;                loadTOCNode(2, 'summary');            &lt;/script&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;This method applies to the following scenarios: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;You transfer logins and passwords from SQL Server 7.0 to SQL Server 2005. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;You transfer logins and passwords from SQL Server 2000 to SQL Server 2005. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;You assign logins to roles.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;To transfer logins and passwords between different versions of SQL Server and then assign logins to roles, follow these steps: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;1.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Run the following script on the source SQL Server. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;USE master &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;GO &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;IF OBJECT_ID ('sp_hexadecimal') IS NOT NULL &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DROP PROCEDURE sp_hexadecimal &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;GO &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;CREATE PROCEDURE sp_hexadecimal &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;@binvalue varbinary(256), &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;@hexvalue varchar(256) OUTPUT &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;AS &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DECLARE @charvalue varchar(256) &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DECLARE @i int &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DECLARE @length int &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DECLARE @hexstring char(16) &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SELECT @charvalue = '0x' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SELECT @i = 1 &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SELECT @length = DATALENGTH (@binvalue) &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SELECT @hexstring = '0123456789ABCDEF' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;WHILE (@i &amp;lt;= @length) &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;BEGIN &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DECLARE @tempint int &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DECLARE @firstint int &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DECLARE @secondint int &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SELECT @tempint = CONVERT(int, SUBSTRING(@binvalue,@i,1)) &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SELECT @firstint = FLOOR(@tempint/16) &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SELECT @secondint = @tempint - (@firstint*16) &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SELECT @charvalue = @charvalue + &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SUBSTRING(@hexstring, @firstint+1, 1) + &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SUBSTRING(@hexstring, @secondint+1, 1) &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SELECT @i = @i + 1 &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;END &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SELECT @hexvalue = @charvalue &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;GO &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;IF OBJECT_ID ('sp_help_revlogin_2000_to_2005') IS NOT NULL &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DROP PROCEDURE sp_help_revlogin_2000_to_2005 &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;GO &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;CREATE PROCEDURE sp_help_revlogin_2000_to_2005 &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;@login_name sysname = NULL, &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;@include_db bit = 0, &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;@include_role bit = 0 &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;AS &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DECLARE @name sysname &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DECLARE @xstatus int &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DECLARE @binpwd varbinary (256) &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DECLARE @dfltdb varchar (256) &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DECLARE @txtpwd sysname &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DECLARE @tmpstr varchar (256) &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DECLARE @SID_varbinary varbinary(85) &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DECLARE @SID_string varchar(256) &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;IF (@login_name IS NULL) &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DECLARE login_curs CURSOR STATIC FOR &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SELECT sid, [name], xstatus, password, isnull(db_name(dbid), 'master') &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;FROM master.dbo.sysxlogins &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;WHERE srvid IS NULL AND &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;[name] &amp;lt;&amp;gt; 'sa' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;ELSE &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DECLARE login_curs CURSOR FOR &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SELECT sid, [name], xstatus, password, isnull(db_name(dbid), 'master') &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;FROM master.dbo.sysxlogins &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;WHERE srvid IS NULL AND &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;[name] = @login_name &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;OPEN login_curs &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwd, @dfltdb &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;IF (@@fetch_status = -1) &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;BEGIN &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT 'No login(s) found.' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;CLOSE login_curs &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DEALLOCATE login_curs &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;RETURN -1 &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;END &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SET @tmpstr = '/* sp_help_revlogin script ' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT @tmpstr &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SET @tmpstr = '** Generated ' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;+ CONVERT (varchar, GETDATE()) + ' on ' + @@SERVERNAME + ' */' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT @tmpstr &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT '' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT '' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT '' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT '/***** CREATE LOGINS *****/' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;WHILE @@fetch_status = 0 &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;BEGIN &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT '' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SET @tmpstr = '-- Login: ' + @name &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT @tmpstr &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;IF (@xstatus &amp;amp; 4) = 4 &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;BEGIN -- NT authenticated account/group &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;IF (@xstatus &amp;amp; 1) = 1 &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;BEGIN -- NT login is denied access &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SET @tmpstr = '' --'EXEC master..sp_denylogin ''' + @name + '''' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT @tmpstr &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;END &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;ELSE &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;BEGIN -- NT login has access &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SET @tmpstr = 'IF NOT EXISTS (SELECT * FROM sys.server_principals WHERE [name] = ''' + @name + ''')' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT @tmpstr &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SET @tmpstr = CHAR(9) + 'CREATE LOGIN [' + @name + '] FROM WINDOWS' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT @tmpstr &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;END &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;END &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;ELSE &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;BEGIN -- SQL Server authentication &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;EXEC sp_hexadecimal @SID_varbinary, @SID_string OUT &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;IF (@binpwd IS NOT NULL) &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;BEGIN -- Non-null password &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;EXEC sp_hexadecimal @binpwd, @txtpwd OUT &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SET @tmpstr = 'CREATE LOGIN [' + @name + '] WITH PASSWORD=' + @txtpwd + ' HASHED' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;END &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;ELSE &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;BEGIN -- Null password &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SET @tmpstr = 'CREATE LOGIN [' + @name + '] WITH PASSWORD=''''' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;END &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SET @tmpstr = @tmpstr + ', CHECK_POLICY=OFF, SID=' + @SID_string &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT @tmpstr &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;END &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwd, @dfltdb &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;END &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;IF @include_db = 1 &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;BEGIN &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT '' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT '' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT '' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT '/***** SET DEFAULT DATABASES *****/' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;FETCH FIRST FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwd, @dfltdb &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;WHILE @@fetch_status = 0 &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;BEGIN &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT '' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SET @tmpstr = '-- Login: ' + @name &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT @tmpstr &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SET @tmpstr = 'ALTER LOGIN [' + @name + '] WITH DEFAULT_DATABASE=[' + @dfltdb + ']' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT @tmpstr &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwd, @dfltdb &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;END &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;END &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;IF @include_role = 1 &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;BEGIN &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT '' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT '' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT '' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT '/***** SET SERVER ROLES *****/' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;FETCH FIRST FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwd, @dfltdb &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;WHILE @@fetch_status = 0 &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;BEGIN &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT '' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SET @tmpstr = '-- Login: ' + @name &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT @tmpstr &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;IF @xstatus &amp;amp;16 = 16 -- sysadmin &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;BEGIN &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SET @tmpstr = 'exec master.dbo.sp_addsrvrolemember @loginame=''' + @name + ''', @rolename=''sysadmin''' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT @tmpstr &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;END &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;IF @xstatus &amp;amp;32 = 32 -- securityadmin &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;BEGIN &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SET @tmpstr = 'exec master.dbo.sp_addsrvrolemember @loginame=''' + @name + ''', @rolename=''securityadmin''' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT @tmpstr &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;END &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;IF @xstatus &amp;amp;64 = 64 -- serveradmin &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;BEGIN &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SET @tmpstr = 'exec master.dbo.sp_addsrvrolemember @loginame=''' + @name + ''', @rolename=''serveradmin''' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT @tmpstr &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;END &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;IF @xstatus &amp;amp;128 = 128 -- setupadmin &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;BEGIN &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SET @tmpstr = 'exec master.dbo.sp_addsrvrolemember @loginame=''' + @name + ''', @rolename=''setupadmin''' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT @tmpstr &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;END &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;IF @xstatus &amp;amp;256 = 256 --processadmin &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;BEGIN &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SET @tmpstr = 'exec master.dbo.sp_addsrvrolemember @loginame=''' + @name + ''', @rolename=''processadmin''' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT @tmpstr &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;END &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;IF @xstatus &amp;amp;512 = 512 -- diskadmin &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;BEGIN &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SET @tmpstr = 'exec master.dbo.sp_addsrvrolemember @loginame=''' + @name + ''', @rolename=''diskadmin''' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT @tmpstr &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;END &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;IF @xstatus &amp;amp;1024 = 1024 -- dbcreator &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;BEGIN &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SET @tmpstr = 'exec master.dbo.sp_addsrvrolemember @loginame=''' + @name + ''', @rolename=''dbcreator''' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT @tmpstr &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;END &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;IF @xstatus &amp;amp;4096 = 4096 -- bulkadmin &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;BEGIN &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;SET @tmpstr = 'exec master.dbo.sp_addsrvrolemember @loginame=''' + @name + ''', @rolename=''bulkadmin''' &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;PRINT @tmpstr &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;END &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwd, @dfltdb &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;END &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;END &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;CLOSE login_curs &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;DEALLOCATE login_curs &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;RETURN 0 &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;GO&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&amp;nbsp;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;exec sp_help_revlogin_2000_to_2005 @login_name=NULL, @include_db=1, @include_role=1&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas;background: yellow; color: #333333; font-size: 12pt"&gt;GO&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;2.&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Save the output, and then paste and run the output in SQL Server Management Studio on the destination SQL Server 2005.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Note&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; If the source SQL Server contains a login that has a blank password, the output contains a statement that resembles the following. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Consolas; color: #333333; font-size: 12pt"&gt;CREATE LOGIN LoginName WITH PASSWORD = '', CHECK_POLICY = OFF, SID = MySID&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/246133/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black"&gt;Remarks&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Review the output script carefully before you run it on the destination SQL Server. If you have to transfer logins to an instance of SQL Server in a different domain than the source instance of SQL Server, edit the script generated by the &lt;strong&gt;sp_help_revlogin&lt;/strong&gt; procedure, and replace the domain name with the new domain in the &lt;strong&gt;sp_grantlogin&lt;/strong&gt; statements. Because the integrated logins granted access in the new domain will not have the same SID as the logins in the original domain, the database users will be orphaned from these logins. To resolve these orphaned users, see the articles referenced in the following bullet item. If you transfer integrated logins between instances of SQL Servers in the same domain, the same SID is used and the user is not likely to be orphaned. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;After you move the logins, users may not have permissions to access databases that have also been moved. This problem is described as an "orphaned user". If you try to grant the login access to the database, it may fail indicating the user already exists: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #333333; font-size: 9pt"&gt;Microsoft SQL-DMO (ODBC SQLState: 42000) Error 15023: User or role '%s' already exists in the current database.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;For instructions about how to map the logins to the database users to resolve orphaned SQL Server logins and integrated logins, see the following article in the Microsoft Knowledge Base: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/240872"&gt;240872&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;How to resolve permission issues when you move a database between servers that are running SQL Server &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;For instructions about using the &lt;strong&gt;sp_change_users_login&lt;/strong&gt; stored procedure to correct the orphaned users one-by-one (this will only address users orphaned from standard SQL logins), see the following article in the Microsoft Knowledge Base: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/274188"&gt;274188&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;"Troubleshooting Orphaned Users" topic in Books Online is incomplete &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;If the transfer of logins and passwords is part of a move of databases to a new server running SQL Server, see the following article in the Microsoft Knowledge Base for a description of the workflow and steps involved: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/314546"&gt;314546&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;How to move databases between computers that are running SQL Server &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;You can do this because of the &lt;em&gt;@encryptopt&lt;/em&gt; parameter in the &lt;strong&gt;sp_addlogin&lt;/strong&gt; system stored procedure, that allows a login to be created by using the encrypted password. For more information about this procedure, see the "sp_addlogin (T-SQL)" topic in SQL Server Books Online. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;By default, only members of the sysadminfixed server role can select from the &lt;strong&gt;sysxlogins &lt;/strong&gt;table. Unless a member of the sysadmin role grants the necessary permissions, end users cannot create or run these stored procedures. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;This approach does not try to transfer the default database information for a particular login because the default database may not always exist on the destination server. To define the default database for a login, you can use the &lt;strong&gt;sp_defaultdb&lt;/strong&gt; system stored procedure by passing it the login name and the default database as arguments. For more information about using this procedure, see the "sp_defaultdb" topic in SQL Server Books Online. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;During a transfer of logins between instances of SQL Server, if the sort order of the source server is case-insensitive and the sort order of the destination server is case-sensitive, you must enter all alphabetical characters in passwords as uppercase characters after the transfer of logins to the destination server. If the sort order of the source server is case-sensitive and the sort order of the destination server is case-insensitive, you will not be able to log in with the logins transferred using the procedure outlined in this article, unless the original password contains no alphabetical characters or unless all alphabetical characters in the original password are uppercase characters. If both servers are case-sensitive or both servers are case-insensitive, you will not experience this problem. This is a side effect of the way that SQL Server handles passwords. For more information, see the "Effect on Passwords of Changing Sort Orders" topic in SQL Server 7.0 Books Online. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;When you run the output from the &lt;strong&gt;sp_help_revlogin&lt;/strong&gt; script on the destination server, if the destination server already has a login defined with the same name as one of the logins on the script output, you may see the following error upon execution of the output of the &lt;strong&gt;sp_help_revlogin&lt;/strong&gt; script: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #333333; font-size: 9pt"&gt;Server: Msg 15025, Level 16, State 1, Procedure sp_addlogin, Line 56&lt;br /&gt;The login 'test1' already exists. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Likewise, if a different login exists with the same SID value on this server as the one you are trying to add, you receive the following error message: &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: #333333; font-size: 9pt"&gt;Server: Msg 15433, Level 16, State 1, Procedure sp_addlogin, Line 93&lt;br /&gt;Supplied parameter @sid is in use.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Therefore, you must carefully review the output from these commands, examine the contents of the &lt;strong&gt;sysxlogins&lt;/strong&gt; table, and address these errors accordingly. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: Symbol; color: black; font-size: 10pt"&gt;&amp;#183;&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;The SID value for a particular login is used as the basis for implementing database level access in SQL Server. Therefore, if the same login has two different values for the SID at the database level (in two different databases on that server), the login will only have access to that database whose SID matches the value in &lt;strong&gt;syslogins&lt;/strong&gt; for that login. Such a situation might occur if the two databases in question have been consolidated from two different servers. To resolve this problem, the login in question would have to be manually removed from the database that has a SID mismatch by using the &lt;strong&gt;sp_dropuser&lt;/strong&gt; stored procedure, and then added again by using the &lt;strong&gt;sp_adduser&lt;/strong&gt; stored procedure. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/246133/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;Note&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt; This is a "FAST PUBLISH" article created directly from within the Microsoft support organization. The information contained herein is provided as-is in response to emerging issues. As a result of the speed in making it available, the materials may include typographical errors and may be revised at any time without notice. See &lt;a href="http://go.microsoft.com/fwlink/?LinkId=151500"&gt;Terms of Use&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;for other considerations. &lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family: 'Verdana','sans-serif'; color: black; font-size: 9pt"&gt;&lt;a href="http://support.microsoft.com/kb/246133/en-us#top"&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: windowtext; font-size: 10.5pt"&gt;&lt;/span&gt;Back to the top&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liangqihui/aggbug/1992564.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liangqihui/archive/2011/03/23/1992564.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liangqihui/archive/2011/02/25/1964493.html</id><title type="text">Understanding the error message: “Login failed for user &amp;#39;&amp;#39;. The user is not associated with a trusted SQL Server connect</title><summary type="text">[ZT]Understanding the error message: “Login failed for user ''. The user is not associated with a trusted SQL Server connection.”2 May 2008 8:28 PM Comments 29 Understanding the error message: “Login failed for user ''. The user is not associated with a trusted SQL Server connection.</summary><published>2011-02-25T02:10:00Z</published><updated>2011-02-25T02:10:00Z</updated><author><name>挥辉</name><uri>http://www.cnblogs.com/liangqihui/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liangqihui/archive/2011/02/25/1964493.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liangqihui/archive/2011/02/25/1964493.html"/><content type="html">&lt;p&gt;&lt;strong&gt;[ZT]Understanding the error message: &amp;#8220;Login failed for user ''. The user is not associated with a trusted SQL Server connection.&amp;#8221;&lt;/strong&gt;&lt;/p&gt;&lt;div&gt;2 May 2008 8:28 PM &lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li post-reply-count?&gt;Comments &lt;a href="#comments"  view-replies?&gt;29&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div user-defined-markup?&gt;&lt;p&gt;Understanding the error message: &amp;#8220;Login failed for user ''. The user is not associated with a trusted SQL Server connection.&amp;#8221;&lt;/p&gt;&lt;p&gt;This exact Login Failed error, with the empty string for the user name, has two unrelated classes of causes, one of which has already been blogged about here: &lt;a href="http://blogs.msdn.com/sql_protocols/archive/2005/09/28/474698.aspx"&gt;http://blogs.msdn.com/sql_protocols/archive/2005/09/28/474698.aspx&lt;/a&gt;.&amp;nbsp;In addition to an extra space in the connection string, the other class of causes for this error message is an inability to resolve the Windows account trying to connect to SQL Server.&amp;nbsp;This list is not intended to be exhaustive, but here are several known root causes for this error message.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;1)&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;If this error message occurs every time in an application using Windows Authentication, and the client and the SQL Server instance are on separate machines, then ensure that the account which is being used to access SQL Server is a domain account.&amp;nbsp;If the account being used is a local account on the client machine, then this error message will occur because the SQL Server machine and the Domain Controller cannot recognize a local account on a different machine.&amp;nbsp;The next step for this is to create a domain account, give it the appropriate access rights to SQL Server, and then use that domain account to run the client application.&amp;nbsp;Note that this case also includes the special accounts &amp;#8220;NT AUTHORITY\LOCAL SERVICE&amp;#8221; and &amp;#8220;NT AUTHORITY\NETWORK SERVICE&amp;#8221; trying to connect to a remote SQL Server, when authentication uses NTLM rather than Kerberos.&lt;/p&gt;&lt;p&gt;One very common case where this can occur is when creating web applications with SQL Server and IIS; often, the web page will work during development, then errors occur with this message after deploying the web site.&amp;nbsp;This occurs because the developer&amp;#8217;s account has access to SQL Server, but the account IIS runs as does not have access.&amp;nbsp;To fix this specific problem, refer to this kb article about impersonating a domain user in ASP.NET: &lt;a href="http://support.microsoft.com/kb/306158"&gt;http://support.microsoft.com/kb/306158&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;2)&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Similar to above: this error message can appear if the user logging in is a domain account from a different, untrusted domain from the SQL Server&amp;#8217;s domain.&amp;nbsp;The next step for this is either to move the client machine into the same domain as the SQL Server and set it up to use a domain account, or to set up mutual trust between the domains.&amp;nbsp;Setting up mutual trust is a complicated procedure and should be done with a great deal of care and due security considerations.&lt;/p&gt;&lt;p&gt;&lt;span&gt;3)&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;This error message can appear immediately after a password change for the user account attempting to login.&amp;nbsp;This occurs because of caching of the client user&amp;#8217;s credentials.&amp;nbsp;The next step here is to log out the application user with the old password, and re-login with the new password before running the application.&lt;/p&gt;&lt;p&gt;&lt;span&gt;4)&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;If this error message only appears sporadically in an application using Windows Authentication, it may result because the SQL Server cannot contact the Domain Controller to validate the user.&amp;nbsp;This may be caused by high network load stressing the hardware, or to a faulty piece of networking equipment.&amp;nbsp;The next step here is to troubleshoot the network hardware between the SQL Server and the Domain Controller by taking network traces and replacing network hardware as necessary.&lt;/p&gt;&lt;p&gt;&lt;span&gt;5)&lt;span style="font: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;This error message can appear consistently for local connections using trusted authentication, when SQL Server&amp;#8217;s SPN is not interpreted by SSPI as belonging to the local machine.&amp;nbsp;This can be caused either by a misconfiguration of DNS, or by a machine having multiple names.&amp;nbsp;If your machine has multiple names, try to work around the need for multiple names and give it a unique name.&amp;nbsp;If the machine just has one name, then check your DNS configuration.&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/liangqihui/aggbug/1964493.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liangqihui/archive/2011/02/25/1964493.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
