無法使用SQL login去登陸SQL Server - 'Password did not match'

apgcdsd發表於2011-08-12

問題描述: 在某一臺機器上的management studio,始終無法使用SQL login去登陸SQL Server。但是如果在其他的機器上,使用同樣的SQL login是可以登陸SQL Server的。

 

錯誤資訊:'Password did not match '

 

診斷步驟:

1.       在這臺機器上使用SQLCMD連線SQL Server,用同樣的SQL login 登陸,是否可以成功?

2.       建立一個新的SQL login 但是使用空密碼。然後在出問題的機器上使用新建立的SQL login以及空密碼登陸SQL Server,是否可以成功?

如果12都可以成功,基本上我們就可以確定問題是由於management studio工具對傳過去的密碼加密失敗導致的了。

 

Management studio工具把我們在介面上輸入的密碼傳到SQL Server之前,是需要首先做加密的。這個加密的密碼存在什麼地方呢?

我們可以在run中執行%appdata%這個環境變數來檢查路徑。通常這個路徑設定為的是%USERPROFILE%\AppData\Roaming。在這個路徑下面,繼續找到microsoft\protect 目錄。所有加密的cache就存放這個目錄下面了。

  

接下來我們看導致這個問題的幾個原因:

1.     可以嘗試清空protect目錄下所有的檔案和資料夾,然後重試。

2.     直接執行%appdata%報錯,無法開啟指定的路徑,這種情況通常是對%appdata%指向的路徑沒有許可權,或者%appdata%指向路徑是錯誤的。%appdata%是儲存在如下注冊表鍵值中的,我們可以通過訪問登錄檔來確認這個路徑是否有效:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\AppData.

3.     對於登錄檔鍵值HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\AppData.沒有訪問許可權。這個也很容易通過訪問登錄檔鍵值來確認。

 

只要我們當前使用者確認對登錄檔鍵值有訪問的許可權,登錄檔鍵值中所儲存的路徑有效,當前使用者對登錄檔鍵值所儲存的路徑有訪問和寫許可權,這個問題就可以解決了。

有時候我們會發現這個目錄下的Microsoft子目錄下找不到protect資料夾,只要上述三個前提檢查,修改並確保滿足以後,這個protect目錄在management studio使用加密的時候會自動建立,所以protect資料夾不存在並不是問題的原因。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25175503/viewspace-704765/,如需轉載,請註明出處,否則將追究法律責任。

相關文章