BUG:Enterprise Manager 中未顯示 DBO 使用者

文章翻譯 文章翻譯
文章編號: 305711 - 檢視此文章適用的產品。
本文曾發行於 CHT305711
BUG #: 355065 (SHILOH_BUGS)
全部展開 | 全部摺疊

在此頁中

徵狀

某個使用者資料庫中的資料庫擁有者 ( dbo ) 使用者未列於 Enterprise Manager 的 [使用者] 資料夾內。此外,當您檢視 Enterprise Manager [登入] 資料夾中任何登入的內容時,會出現 [SQL-DMO] 21776 的錯誤訊息:
"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"(「dbo」名稱未在使用者集合物件中。如果這個名稱是合格名稱,請使用 [ ] 來分隔名稱的不同部分,然後再試一次)
這個問題只有在您替伺服器套用 SQL Server 2000 Service Pack 1 (SP1) 之後才會發生, dbo 使用者顯示出來的是空白的登入名稱。

發生的原因

Enterprise Manager 誤將沒有相符登入的所有使用者篩選掉,而 dbo 使用者正巧沒有相符的登入。 這個問題的兩個可能原因是:
  • 資料庫是由一個通過 Microsoft Windows NT 驗證的登入所建立,且此登入具有群組成員的權限 (如 BUILTIN\Administrators) 可以存取執行 SQL Server 的電腦,儲存在該資料庫的 sysusers 系統資料表的安全識別碼在 syslogins 系統資料表中沒有相符的 SID。

  • 在資料庫的還原位置上 dbo 系統資料表的 sysusers 使用者的 SID 和 syslogins 系統資料表中的 SID 不符。

其他可行方案

若要解決此狀況,請使用下列方法之一:
  • 如果 dbo 使用者沒有明確的登入,請將資料庫的擁有者改為具有明確登入的使用者。例如,將資料庫擁有者改為系統管理員 ( sa ),再執行以下程式碼:
    exec sp_changedbowner 'sa'
  • 如果 dbo 使用者具有明確的登入,但該使用者在 sysusers 系統資料表中的 SID 與 syslogins 系統資料表中登入的 SID 不符 (可能是因為資料庫還原的關係),請使用 sp_change_users_login 預存程序來還原 SID 對應。

狀況說明

Microsoft 已確認 SQL Server 2000 Service Pack 1 (SP1) 確實有上述問題。

其他相關資訊

若要判斷 dbo 使用者在某個使用者資料庫中是否有不相符的情形,請執行下列查詢:

Use <User_Database>

GO

SELECT u.name AS "Name", ISNULL(l.name, 'dbo is unmatched') AS "Matched Login"

FROM sysusers u

     LEFT JOIN master.dbo.syslogins l ON u.sid = l.sid

WHERE u.name = 'dbo'

GO

參考



如需詳細資訊,請按一下下面的文件編號,檢視 Microsoft Knowledge Base 中的下列文件:
218172 PRB: Cannot Change SA Password in Enterprise Manager
274188 PRB: "Troubleshooting Orphaned Users" Topic in Books Online is Incomplete
168001 PRB: User Logon and/or Permission Errors After Restoring Dump
246133 INF: Transfer Logins and Passwords Between SQL Server 7.0 and SQL Server 2000
298758 PRB: Using the Auto_Fix Option with sp_change_users_login Can Leave Security Vulnerabilities

?考

本文件是根據 Microsoft Knowledgebase 文件編號 Q305711 翻譯的. 若要參考原始英文文件內容, 請至以下網址:

http://support.microsoft.com/support/kb/articles/Q305/7/11.asp

屬性

文章編號: 305711 - 上次校閱: 2003年11月12日 - 版次: 2.1
這篇文章中的資訊適用於:
  • Microsoft SQL Server 2000 Standard Edition
關鍵字:?
kbbug kbpending kbsqlserv2000bug KB305711
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com