首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> SQL Server 2005

SQL Server 錯誤 4064:無法開啟使用者預設資料庫,登入失敗解決方案

     編輯:SQL Server 2005

錯誤訊息

「無法開啟使用者預設資料庫。登入失敗。錯誤 4064」—— 登入帳號的預設資料庫已被刪除或離線。

解決方法一:SSMS 圖形介面修改(需有效管理員帳號)

  1. 以 sysadmin 權限登入 SSMS(Windows 驗證或其他可用 sa 帳號)。
  2. 展開「安全性」→「登入」→ 目標帳號右鍵「屬性」。
  3. 「一般」頁籤 →「預設資料庫」下拉選擇存在的資料庫(如 master)。
  4. 確定,重新嘗試登入。

解決方法二:命令列修復(連 SSMS 都進不去時)

SQL Server 2000 (isql)

# SQL 驗證
isql -U sa -P "密碼" -d master -Q "exec sp_defaultdb N'sa', N'master'"

# Windows 驗證
isql -E -d master -Q "exec sp_defaultdb N'BUILTIN\Administrators', N'master'"

SQL Server 2005+ (sqlcmd 取代 isql)

# SQL 驗證
sqlcmd -U sa -P "密碼" -d master -Q "exec sp_defaultdb N'sa', N'master'"

# Windows 驗證
sqlcmd -E -d master -Q "exec sp_defaultdb N'BUILTIN\Administrators', N'master'"

參數說明:-d master 指定連線預設資料庫為 master 繞過錯誤,-Q 執行 T-SQL 修改預設資料庫後離開。

常見觸發情境

  • 手動刪除了使用者的預設資料庫。
  • 還原資料庫時指定不同實體路徑導致資料庫 ID 變更,原登入關聯失效。
  • 資料庫設為離線/單一使用者模式且為該登入預設資料庫。

預防建議

  • 建立登入時預設資料庫指定 master,應用程式連線字串明確指定 Initial Catalog。
  • 刪除資料庫前檢查 SELECT * FROM sys.server_principals WHERE default_database_name = 'DBName' 是否有相依登入。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved