現象:---------------------------------------------------
1、串連SQL Server資料庫提示:Login failed for user 'sa'. Reason: Not associated with a trusted SQL Server connection 錯誤
問題:-------------------------------------------------
初步分析應該與使用者權限有關,查閱協助檔案,微軟官方給出的原因:
當 SQL Server 2000 安全身分識別驗證設定為“僅 Windows”, 並且存在下列情況之一時,就會發生此問題:
您正在嘗試使用 SQL Server 登入串連到 SQL Server 2000 資料庫。
您正在嘗試使用信任的 SQL Server 串連來串連到安裝在基於 Microsoft Windows 98 的電腦上的 SQL Server 2000 案頭引擎(也稱為 MSDE 2000)資料庫。
您正在嘗試從某 Windows 帳戶串連到 SQL Server 2000 資料庫,而該帳戶沒有足夠的許可權串連到伺服器。
解決:--------------------------------------------
官方給出的解決辦法:
SQL Server 登入
使用有效 Windows 登入串連到 SQL Server。如果必須繼續使用 SQL Server 登入,您可以將在 SQL Server 2000 中的安全身分識別驗證模式更改為“SQL Server 和 Windows”。為此,請按照下列步驟操作:
啟動企業管理器。
展開“Microsoft SQL Servers”,然後展開“SQL Server 組”。
按右鍵要更改為“SQL Server 和 Windows”身分識別驗證的伺服器,然後單擊“屬性”。
在“SQL Server 屬性”對話方塊中,單擊“安全”選項卡,單擊“SQL Server 和 Windows”,然後單擊“確定”。
當提示您重新啟動 SQL Server 服務時,單擊“是”。
SQL Server 2000 案頭引擎 (MSDE 2000) 安裝在基於 Microsoft Windows 98 的電腦上
當 SQL Server 2000 案頭引擎安裝在基於 Windows 98 的電腦上時,必須使用標準的 SQL Server 登入串連到資料庫。當您在基於 Windows 98 的電腦上安裝 SQL Server 2000 案頭引擎時,不支援“僅 Windows”身分識別驗證模式。
Windows 帳戶許可權不足
要解決此問題,必須將 Windows 帳戶添加到 SQL Server,然後為使用者需要訪問的每個資料庫授予適當的許可權。為此,請按照下列步驟操作:
啟動企業管理器。
展開“Microsoft SQL Server”,然後展開“SQL Server 組”。
展開您的伺服器,然後展開“安全”。
按右鍵“登入”,然後單擊“建立登入”。
在“SQL Server 登入屬性”對話方塊中,在“名稱”框中輸入 Windows 帳戶名稱。在“域”列表中,選擇該 Windows 帳戶所屬的域。
單擊“資料庫訪問”選項卡,為用戶端設定適當的許可權,然後單擊“確定”
注意:在添加帳戶後,您仍然必須為使用者需要訪問的各個資料庫物件授予存取權限。
2、剛裝完SQL Server 2008 Express,嘗試使用sa帳號登入,但總是出現Login failed for user 'sa' 錯誤。覺得應該是SQL Server的認證模式沒設對,SQL Server Express預設是Windows Authentication模式,我必須設成Mixed Authentication Mode才可以。
所以查了一下文檔,微軟的官方文檔說只要把sa帳號enable就可以了,但試過後同樣的錯誤。後來截取了SQL Server Management Studio的指令碼才發現還必須要改一個註冊表索引值才行。
在我的機器上該索引值是:HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL ServerMSSQL10.SQLEXPRESSMSSQLServerLoginMode
1 - Windows Authentication Mode
2 - Mixed Authentication Mode
改成2以後就能用sa帳號登入了。
*補充一下,必須得重啟SQL Server的服務改動才能有效。
3、在 SQL Server 2005 中,您將收到"登入錯誤: 18456"錯誤訊息在您嘗試登入到 SQL Server 2005 執行個體並且下列條件都為真時:
•您嘗試使用 SQL Server 身分識別驗證的登入來登入到該執行個體。
•在 SQL Server 服務佈建服務的啟動帳戶使用域帳戶。
•SQL 身分識別驗證登入接收"登入錯誤: 18456"錯誤訊息被配置為使用 Windows 域密碼原則實施。
注意預設情況下,除非您顯式設定建立登入語句的 CHECK_POLICY 子句為 OFF 時建立給定的登入啟用 SQL 身分識別驗證登入的 Windows 域密碼原則實施。
•SQL Server 啟動服務的服務帳戶鎖定或禁用網域控制站上。
如果配置登入審核失敗登入事件寫入錯誤記錄檔的 SQL Server 執行個體,以下訊息將寫入 SQL Server 錯誤記錄檔檔案:
錯誤訊息 1
日期時間登入錯誤: 18456,嚴重: 14 日狀態: 10。
解決方案
可以從 Microsoft 獲得支援的熱修複補丁程式。但是,此Hotfix僅能用於解決本文中描述的問題。此熱修複補丁程式僅適用於正出現此特定問題的系統。此Hotfix可能會接受進一步的測試。因此,如果這個問題沒有對您造成嚴重的影響,我們建議您等待包含此修複程式的下一個軟體更新。
如果此Hotfix已可供下載,則此知識庫文章頂部"提供Hotfix下載"部分。如果未顯示此節,請聯絡 Microsoft 客戶服務和支援,以擷取此修複程式。
注意如果出現其他問題或需要任何故障診斷,您可能需要建立單獨的服務要求。其他支援問題和事項,不適合於此特定的Hotfix將收取照常收取支援費用。Microsoft 客戶服務和支援電話號碼,或建立單獨的服務要求的完整列表,請訪問下面的 Microsoft Web 網站:
http://support.microsoft.com/contactus/?ws=support
() http://support.microsoft.com/contactus/?ws=support
注意"可用的熱Hotfix下載"表格顯示此熱修複補丁程式適用的語言。如果您看不到您的語言,這是因為熱修複補丁程式不適用於該語言。
先決條件
您必須具有要應用此Hotfix安裝的 SQL 伺服器 2005 Service Pack 1。