您目前已離線,請等候您的網際網路重新連線

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

請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。

按一下這裡查看此文章的英文版本: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 提示字元中,輸入 GO然後按 ENTER 鍵。

SQL Server 2000年和 SQL Server 7.0

若要變更的預設資料庫,SQL Server 7.0 和 SQL Server 2000年中,您可以使用 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,層級伺服器,狀態 1,14 伺服器名稱使用者失敗行 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 Query Analyzer (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 產品版本,這種情況的工具的詳細資訊。
規則軟體規則標題規則描述針對規則進行評估的產品版本
System Center 警告器SQL Server 伺服器層級原則設定不存在的預設資料庫如果任何登入 SQL Server 執行個體中所顯示的 system Center Advisorchecks 會以已不存在的預設資料庫設定。檢閱 theadvisor 警示 」 收集資訊 > 一節中所提供,並遵循步驟來解決這個狀況,本文所討論的詳細資料。 SQL Server 2008

SQL Server 2008 R2

SQL Server 2012

警告:本文為自動翻譯

內容

文章識別碼:307864 - 最後檢閱時間:09/27/2015 04:48:00 - 修訂: 10.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, Microsoft SQL Server 2012 Enterprise Core, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Web

  • kbtshoot kbsqlsetup kbprb kbmt KB307864 KbMtzh
意見反應