當 Microsoft Windows NT 使用者或 Microsoft Windows NT 組為登入名稱添加到 Microsoft SQL Server,或者當從一個域中伺服器的登入名稱移動到另一個域中的伺服器時,您可能會看到以下錯誤:
錯誤 15401: Windows NT 使用者或組 %s 找不到。再次檢查該名稱。
本分步指南介紹討論錯誤以及如何解決此問題的潛在的原因。
回到頂端
該登入名稱不存在
- 驗證在域中仍然存在 Windows 登入名稱。您的網路系統管理員可能已刪除 Windows 登入,為特定的原因,您可能無法向該 SQL Server 授予該登入訪問權。
- 驗證您正確拼字域和登入名稱和您正在使用以下格式:
Domain\User
- 如果存在該登入名稱,並正確,並且您仍然收到錯誤,繼續以下各節中,在這篇文章中。
回到頂端
重複的安全性識別碼
在 Windows 域中唯一的安全性識別碼 (sid) 會自動分配到域中的 Windows 登入名稱。為 SQL Server 登入名中添加 Windows 登入時系統資料表中 SQL Server 儲存 SID。如果試圖添加一個新的登入具有相同的 SID 為一個現有的 SQL Server 登入 15401 錯誤發生。
注意SQL Server 2005 中不允許重複的 sid。
- 若要確定這是您的錯誤的原因,母片對運行下面的代碼資料庫而您登入到 SQL Serversysadmin 角色的成員資格:
SELECT name FROM syslogins WHERE sid = SUSER_SID ('YourDomain\YourLogin')
- 如果從該查詢返回一行,重複 SID 是問題的您的原因。
- 此方案的一個可能的原因從另一個域中伺服器載入 master 資料庫。可能存在的那個域中登入一個 SID 與您試圖在此域中添加該登入一樣。這還可能在其中有複製或映像系統的環境中發生。
- 您必須使用 sp_revokelogin 除去該登入名稱與匹配的 SID 或者,保留在現有登入名稱正確映射從舊的域登入名稱,要在新域中的登入名稱。有關如何執行此操作的詳細資料單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
314546 如何在運行 SQL Server 的電腦之間移動資料庫
回到頂端
身分識別驗證失敗
當由於某種原因 (相同或不同的域) 登入的所在的域的網域控制站不可用時,您可能會收到錯誤 15401。
- 如果登入名稱是在比該 SQL Server 不同的域中,驗證在域之間存在正確的信任關係。
- 驗證登入的網域控制站是可訪問,通過從電腦正在運行 SQL Server ping 命令。請檢查 IP 位址和網域控制站的名稱。
有關 ping 命令的詳細資料,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:102908 如何解決與 Windows 2000 或 Windows NT 的 TCP/IP 串連問題
回到頂端
區分大小寫
您可能遇到以下 Microsoft 知識庫文章所述的區分大小寫問題:
245768 區分大小寫 Unicode 排序次序和 Windows NT 登入
在此例使用 sp_configure 或 sp_helpsort 儲存以確定如果排序次序或 SQL Server 執行個體的定序是大小寫敏感的過程。區分大小寫伺服器是否按照中被引用的文章 (Q245768) 已成功添加登入步驟進行操作。
回到頂端
本地帳戶
本地 (非域) 帳戶需要進行特殊處理。如果您正試圖添加本地帳戶從本機電腦運行 SQL Server,查看下面的 Microsoft 知識庫文章,擷取正確的步驟:
322988 在 Microsoft Windows NT 4.0 的 sp_grantlogin"NT AUTHORITY\SYSTEM"失敗
- 為在 Windows NT 4.0 SQL Server 登入名中添加本地系統帳戶查看 Q322988 Microsoft 知識庫文章中的過程。
- 當您將添加預定義的本機群組時,則必須使用內建作為域。
有關詳細的資訊請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:216808 使用 BUILTIN\Group 到預定義的 Windows NT 組授予存取權限
回到頂端
名稱解析
如果添加登入或組所涉及的電腦的名稱解析問題,您可能會收到錯誤 15401。
驗證您的名稱解析機制 (如 WINS、 DNS、 HOSTS 或 LMHOSTS) 配置是否正確。