SQL2005系統公升級手記之一 解決sa帳戶被鎖定

2021-08-22 16:43:48 字數 1635 閱讀 1113

概述

在幫乙個使用者進行系統從sql2000公升級到sql2005的過程中,遇到了幾個問題,因前段時間同時忙於幾個專案,沒能及時把問題解決方法整理下來。這段時間有些輕鬆了,更新一下我的blog希望能幫助朋友們解決實踐中的問題。

問題描述:

在公升級sql2000的dts包的時候,試著手工執行了幾次,突然系統報18456錯誤,提示資訊是「無法連線到×××伺服器」,其他資訊為「使用者『sa』登入失敗。(microsoft sql server,錯誤:18456)」。

問題原因:

公升級sql2000的dts包是這次資料庫系統整體公升級的一部分。除此之外,系統硬體進行了公升級,新公升級的系統伺服器加入到了使用者機構的域中,並更改了資料庫sa的使用者口令。

原dts的資料報是儲存了原sql2000資料庫庫系統的使用者憑據,口令自然是原先的資料庫口令。在試執行dts包之前伺服器管理員剛剛把新公升級成功的資料庫伺服器加入域。

使用者機構的域是設定了「密碼策略」。sql server 2005的sa使用者預設是啟用了「強制實施密碼策略」。而一般預設的windows帳戶密碼策略或者ad(域帳戶)密碼策略都是3-6次錯誤口令登陸失敗後,系統暫時凍結該使用者。凍結的時間要看系統設定的長短。

該問題就出在dts用錯誤的sa口令(舊的sa口令)多次試圖訪問系統,而sa的「強制實施密碼策略」起了作用。

**:

sa帳戶被鎖定,原因是sa的帳戶啟用了「強制實施秘密策略」,或者「強制過期」。在登入使用者sa的登入屬性對話方塊中,能看到改選項是否選定狀態。如下圖(1)所示:

圖(1

選中「強制實施秘密策略」後,sql server2005會呼叫windows或者域的帳戶管理策略。如果是windows的帳號管理策略,可以通過「控制面板」的「本地安全設定」中看到「帳戶策略」情況,其中的「密碼策略」可以設定使用者秘密的失效時間、長短等,另外在「帳戶鎖定策略」可以設定「帳戶鎖定閾值」,即帳戶用錯誤的口令嘗試登入幾次,系統即自動鎖定該帳戶。可以參考圖(2)。

圖(2

如果sql server的帳號已經被鎖定,在該帳戶的登入屬性裡面能看到如圖(3)所示。

圖(3)

周五(10月20

日)遇到的問題是因為,舊有的dts包中設定的鏈結還是舊資料庫的sa口令,當多次測試執行該dts時,已經超過了嘗試sa錯誤口令的次數,造成了圖(3)所示的sql server帳戶被鎖定。

這是即使用整合windows的帳戶登入sql server,取消圖(3)「登入已鎖定」的勾選。再重新用sa的正確口令登入sql server時,也會出現18456的錯誤。如圖(4)所示。這是因為sa的口令需要重新設定。再次用整合windows的帳戶登入sql server的帳戶登入sql server進行sa的密碼重新設定,即可解決問題。

圖(4)

總結:第一,如果資料庫安全性沒有特殊的要求,去掉圖(2)所示的「強制實施秘密策略」勾選,能避免該類問題的發生。第二,從舊系統資料庫公升級上來的dts,盡快修改舊鏈結的sa登入口令,保證系統帳戶登入認證不會出問題,同時保證dts能正確執行。

原帖:

SQL2005到2008資料庫公升級

有關公升級矩陣問題 出現這種問題是因為當前資料庫版本與要公升級到的資料庫版本不匹配,有關公升級版本匹配資訊請參考微軟官方 資訊,位址 檢視當前資料庫版本資訊的方法 開啟sql management 執行以下sql語句即可檢視當前資料庫版本資訊 select serverproperty produc...

Sql2005 全文索引 一

理論部份 前言 在資料庫中快速搜尋資料,使用索引可以提高搜尋速度,然而索引一般是建立在數字型或長度比較短的文字型字段上的,比如說編號 姓名等字段,如果建立在長度比較長的文字型字段上,更新索引將會花銷很多的時間。如在文章內容欄位裡用 like 語句搜尋乙個關鍵字,當資料表裡的內容很多時,這個時間可能會...

Sql2005 全文索引 一

理論部份 前言在資料庫中快速搜尋資料,使用索引可以提高搜尋速度,然而索引一般是建立在數字型或長度比較短的文字型字段上的,比如說編號 姓名等字段,如果建立在長度比較長的文字型字段上,更新索引將會花銷很多的時間。如在文章內容欄位裡用like語句搜尋乙個關鍵字,當資料表裡的內容很多時,這個時間可能會讓人難...