現象:---------------------------------------------------
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 獲得支持的熱修復補丁程序。但是,此修補程序僅能用於解決本文中描述的問題。此熱修復補丁程序僅適用於正出現此特定問題的系統。此修補程序可能會接受進一步的測試。因此,如果這個問題沒有對您造成嚴重的影響,我們建議您等待包含此修復程序的下一個軟件更新。
如果此修補程序已可供下載,則此知識庫文章頂部"提供修補程序下載"部分。如果未顯示此節,請聯系 Microsoft 客戶服務和支持,以獲取此修復程序。
注意如果出現其他問題或需要任何故障診斷,您可能需要創建單獨的服務請求。其他支持問題和事項,不適合於此特定的修補程序將收取照常收取支持費用。Microsoft 客戶服務和支持電話號碼,或創建單獨的服務請求的完整列表,請訪問下面的 Microsoft Web 站點:
http://support.microsoft.com/contactus/?ws=support
() http://support.microsoft.com/contactus/?ws=support
注意"可用的熱修補程序下載"表格顯示此熱修復補丁程序適用的語言。如果您看不到您的語言,這是因為熱修復補丁程序不適用於該語言。
先決條件
您必須具有要應用此修補程序安裝的 SQL 服務器 2005 Service Pack 1。