當您連線到 SQL Server 的執行個體的錯誤訊息: 「 無法開啟使用者預設資料庫 」

文章翻譯 文章翻譯
文章編號: 307864 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

徵狀

每個使用者都有預設資料庫。當您連線到正在執行 Microsoft SQL Server 的電腦而不指定登入資料庫時,會使用預設資料庫。不過,如果在連線時的預設資料庫無法使用,您可能無法連線。相反地,您會收到錯誤訊息 4062 或錯誤訊息 4064。錯誤訊息的文字如下所示:
無法開啟使用者預設資料庫

發生的原因

使用者預設資料庫位於無法使用連線的時間。可能的資料庫:
  • 處於質疑模式。
  • 不存在。
  • 處於單一使用者模式,而且唯一可用的連線已經被使用,由其他人或其他項目。
  • 已卸離。
  • 已設定為 RESTRICTED_USER 的狀態。
  • 已離線。
  • 設定為緊急狀態。
  • 不會不具有登入帳戶對應到使用者或使用者已被拒絕存取。
  • 是資料庫鏡像的一部分。
此外,登入帳戶可能是多個群組的成員,且一次連線的其中一個群組的預設資料庫為無法使用。

其他可行方案

若要解決這個問題,請指定有效且可用的資料庫連接字串中。若要避免錯誤,無法使用使用者的預設資料庫時,可以修改登入的使用者身分登入。然後,變更使用者的預設資料庫到目前可供連接的資料庫。

SQL Server 2005 及更新版本

若要變更預設資料庫,SQL Server 2005 中的,您可以使用 sqlcmd 公用程式。若要這樣做,請依照下列步驟執行:
  1. 按一下 [開始],按一下 [執行] 型別 cmd然後按 ENTER 鍵。
  2. 使用下列方法之一,視 SQL Server 登入使用的驗證種類而定:
    • 如果 SQL Server 登入使用 Microsoft Windows 驗證來連接到執行個體,在命令提示字元中,輸入下列命令,然後按 ENTER 鍵:
      sqlcmd – E-S InstanceName – d 母片
    • 如果 SQL Server 登入使用 SQL Server 驗證來連接到執行個體,在命令提示字元中,輸入下列命令,然後按 ENTER 鍵:
      sqlcmd S InstanceName -d 的母片-U SQLLogin -P 密碼
    附註 InstanceName 為您所要連線的 SQL Server 2005 執行個體名稱的預留位置。 SQLLogin 為其預設的資料庫已經卸除的 SQL Server 登入的預留位置。 密碼 為 SQL Server 登入密碼的預留位置。
  3. 在 sqlcmd 提示字元中,輸入下列命令,並按 ENTER:
    變更登入 SQLLogin DEFAULT_DATABASE = AvailDBName
    附註 AvailDBName 為現有執行個體中的 SQL Server 登入可以存取的資料庫名稱的預留位置。
  4. 在 sqlcmd 提示字元中,輸入 移至然後按 ENTER 鍵。

SQL Server 2000年和 SQL Server 7.0

若要變更預設資料庫在 SQL Server 2000 中,SQL Server 7.0 中,您可以使用 osql 公用程式。若要這樣做,請依照下列步驟執行:
  1. 在命令提示字元中,輸入下列命令並按 ENTER:
    C:\>osql-E-d 母片
  2. osql 提示輸入下列文字,然後按 ENTER 鍵:
    1 > sp_defaultdb ' 使用者 's_login','主要'
  3. 在第二個提示字元中,輸入下列命令並按 ENTER:
    2 > 移

狀況說明

這種行為是經過設計規劃。

其他相關資訊

若要示範這種情形,請嘗試與 OSQL 連線,並同時使用-d選項與現有的資料庫處於標準線上狀態。連線成功而沒有任何錯誤訊息。

相反地,您會收到資料庫無法使用時才會從各種 SQL Server 用戶端公用程式類似下列的回應:
  • SQL Server Management Studio (SQL Server 2005)
    無法連線到 伺服器名稱
    其他資訊:
    無法開啟使用者預設資料庫。登入失敗。使用者登入失敗 '使用者名稱'.(Microsoft SQL Server,錯誤碼: 4064)
  • 在 SQL Server 2005 中使用 Sqlcmd 公用程式
    訊息 4064,層級 11,狀態 1,伺服器 伺服器名稱行 1
    無法開啟使用者預設資料庫。登入失敗。
    訊息 18456,層級 14,狀態 1,伺服器 伺服器名稱線條使用者失敗的 1Login '使用者名稱'.
  • SQL Server 2000年查詢分析器 (QA)
    無法連線到伺服器 TESTSERVER:
    伺服器: 訊息 4064,層次 16,狀態 1
    [] Microsoft[ODBC SQL Server 驅動程式][SQL Server]無法開啟使用者預設資料庫。登入失敗。
  • SQL Server 2000年伺服器的企業管理員 (SEM)
    無法連線到 TESTSERVER-無法開啟使用者預設資料庫 'dbid'。請改用 master 資料庫。

    請確認執行 SQL Server,並檢查 SQL Server 註冊內容 (藉由 TESTSERVER 節點上按一下滑鼠右鍵) 並再試一次。
  • 使用 SQL Server 2000 OSQL 命令提示字元

    當您使用C:\>osql-E命令時,您會收到下列錯誤訊息:
    無法開啟使用者預設資料庫。登入失敗。
  • SQL Server 7.0 查詢分析器 (QA)
    無法連線到伺服器 \\TESTSERVER:
    伺服器: 訊息 4062,層次 16,狀態 1
    [] Microsoft[ODBC SQL Server 驅動程式][SQL Server]無法開啟使用者預設資料庫 '<ID>'。請改為使用 master 資料庫。</ID>
  • 使用 SQL Server 7.0 OSQL 命令提示字元

    當您使用C:\>osql-E命令時,您會收到下列錯誤訊息:
    無法開啟使用者預設資料庫 'dbid'。
    請改用 master 資料庫。
下表提供的產品或自動檢查這個條件的評估規則的 SQL Server 產品的版本和您的 SQL Server 的執行個體上的工具的詳細資訊。
摺疊此表格展開此表格
規則軟體規則標題規則描述針對規則進行評估的產品版本
系統中心顧問SQL Server 伺服器層級原則設定不存在的預設資料庫如果任何登入 SQL Server 執行個體中所顯示的 system Center Advisorchecks 設定與已不存在的預設資料庫。檢閱 theadvisor 警示] 收集的資訊 」 一節中所提供,並遵循步驟來解決這個狀況,本文所討論的詳細資料。 SQL Server 2008

SQL Server 2008 R2

SQL Server 2012

屬性

文章編號: 307864 - 上次校閱: 2014年6月22日 - 版次: 8.0
這篇文章中的資訊適用於:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Enterprise Evaluation
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Express with Advanced Services
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2008 R2 Express with Advanced Services
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Standard Edition for Small Business
  • Microsoft SQL Server 2008 R2 Web
  • Microsoft SQL Server 2008 R2 Workgroup
  • Microsoft SQL Server 2008 Standard Edition for Small Business
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Web
  • SQL Server 2012 Enterprise Core
關鍵字:?
kbtshoot kbsqlsetup kbprb kbmt KB307864 KbMtzh
機器翻譯
請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。
按一下這裡查看此文章的英文版本:307864
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