sql 2005 解除用户锁定(SA帐户被锁定)
生活随笔
收集整理的這篇文章主要介紹了
sql 2005 解除用户锁定(SA帐户被锁定)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SQL Server 2005 sa 用戶被鎖定的問題
Sql Server 2005我也不是沒用過,在XP下安裝過幾次了都好好的,這次在Server 2003下按同樣的方式裝上后卻發現有了幾個問題。經過一番努力終于解決了,下面說一下過程~
問題一:無法使用sa用戶登錄,提示:“登錄失敗”,也沒有進一步的說明了。。。
問題二:用Windows賬戶能夠登錄“對象資源管理器”,但無法打開sa用戶的屬性,提示:“屬性IsLocked不可用于登錄"[sa].該對像可能沒有此屬性,也可能是訪問權限不足而無法檢索.(Microsoft.SqlServer.Smo)”,同樣也不能刪除。
這兩個問題后來被證實其實是一個原因造成的。其實這和操作系統有關系,在SQL SERVER的聯機叢書里得到一些啟發,大致就是,當在Windows Server 2003或更高版本環境下運行SQL Server 2005時,可以使用Windows 密碼策略機制,可以將 Windows Server 2003 中使用復雜性策略和過期策略應用于SQL Server 內部使用的密碼。這項功能需要通過 NetValidatePasswordPolicy() API 實現,該 API 只在 Windows Server 2003 和更高版本中提供。下面是一些詳細情況:
密碼復雜性要求
密碼復雜性策略通過增加可能密碼的數量來阻止強力攻擊。實施密碼復雜性策略時,新密碼必須符合以下原則:
密碼不得包含全部或“部分”用戶帳戶名。部分帳戶名是指三個或三個以上兩端用“空白”(空格、制表符、回車符等),或任何以下字符分隔的連續字母數字字符: - _ #;
密碼長度至少為六個字符;
密碼應該包含以下四類字符中的三類:
英文大寫字母 (A - Z)
英文小寫字母 (a - z)
十個基本數字 (0 - 9)
非字母數字(例如:!、$、# 或 %)
密碼過期
密碼過期策略用于管理密碼的使用期限。如果選中了密碼過期策略,則系統將提醒用戶更改舊密碼和帳戶,并禁用過期的密碼。
策略實施
密碼策略是針對各個登錄名實施的。使用 ALTER LOGIN 語句可以配置策略應用程序。配置密碼策略實施時,適用以下規則:
當 CHECK_POLICY 更改為 ON 時:
除非將 CHECK_EXPIRATION 顯式設置為 OFF,否則也會將其設置為 ON;
密碼歷史使用當前的密碼哈希值初始化;
當 CHECK_POLICY 更改為 OFF 時:
CHECK_EXPIRATION 也設置為 OFF;
清除密碼歷史;
lockout_time 的值被重置;
如果指定 MUST_CHANGE,則 CHECK_EXPIRATION 和 CHECK_POLICY 必須設置為 ON。否則該語句將失敗;
如果 CHECK_POLICY 設置為 OFF,則 CHECK_EXPIRATION 不能設置為 ON,否則ALTER LOGIN 語句將失敗。
在安裝SQL SERVER時,默認啟用了這樣的策略,而我當時輸入的sa密碼又很簡單(不滿足密碼復雜性要求),因此登陸時這些復雜的策略就禁止了登錄過程。同時也就導致了我不能修改sa用戶的信息(被自動鎖定)。明白了這個原理,再結合查到的一些資料,用如下T-SQL語句即可解決這個問題:
用WINDOWS賬戶登錄查詢分析器,輸入一下語句并執行: ALTER?LOGIN sa ENABLE ;?
GO?
ALTER?LOGIN sa?WITH?PASSWORD =?''?unlock, check_policy =?off, check_expiration =?off?;?
GO 完成后,重新啟動SQL SERVER服務,即可正常使用sa賬戶了。
Sql Server 2005我也不是沒用過,在XP下安裝過幾次了都好好的,這次在Server 2003下按同樣的方式裝上后卻發現有了幾個問題。經過一番努力終于解決了,下面說一下過程~
問題一:無法使用sa用戶登錄,提示:“登錄失敗”,也沒有進一步的說明了。。。
問題二:用Windows賬戶能夠登錄“對象資源管理器”,但無法打開sa用戶的屬性,提示:“屬性IsLocked不可用于登錄"[sa].該對像可能沒有此屬性,也可能是訪問權限不足而無法檢索.(Microsoft.SqlServer.Smo)”,同樣也不能刪除。
這兩個問題后來被證實其實是一個原因造成的。其實這和操作系統有關系,在SQL SERVER的聯機叢書里得到一些啟發,大致就是,當在Windows Server 2003或更高版本環境下運行SQL Server 2005時,可以使用Windows 密碼策略機制,可以將 Windows Server 2003 中使用復雜性策略和過期策略應用于SQL Server 內部使用的密碼。這項功能需要通過 NetValidatePasswordPolicy() API 實現,該 API 只在 Windows Server 2003 和更高版本中提供。下面是一些詳細情況:
密碼復雜性要求
密碼復雜性策略通過增加可能密碼的數量來阻止強力攻擊。實施密碼復雜性策略時,新密碼必須符合以下原則:
密碼不得包含全部或“部分”用戶帳戶名。部分帳戶名是指三個或三個以上兩端用“空白”(空格、制表符、回車符等),或任何以下字符分隔的連續字母數字字符: - _ #;
密碼長度至少為六個字符;
密碼應該包含以下四類字符中的三類:
英文大寫字母 (A - Z)
英文小寫字母 (a - z)
十個基本數字 (0 - 9)
非字母數字(例如:!、$、# 或 %)
密碼過期
密碼過期策略用于管理密碼的使用期限。如果選中了密碼過期策略,則系統將提醒用戶更改舊密碼和帳戶,并禁用過期的密碼。
策略實施
密碼策略是針對各個登錄名實施的。使用 ALTER LOGIN 語句可以配置策略應用程序。配置密碼策略實施時,適用以下規則:
當 CHECK_POLICY 更改為 ON 時:
除非將 CHECK_EXPIRATION 顯式設置為 OFF,否則也會將其設置為 ON;
密碼歷史使用當前的密碼哈希值初始化;
當 CHECK_POLICY 更改為 OFF 時:
CHECK_EXPIRATION 也設置為 OFF;
清除密碼歷史;
lockout_time 的值被重置;
如果指定 MUST_CHANGE,則 CHECK_EXPIRATION 和 CHECK_POLICY 必須設置為 ON。否則該語句將失敗;
如果 CHECK_POLICY 設置為 OFF,則 CHECK_EXPIRATION 不能設置為 ON,否則ALTER LOGIN 語句將失敗。
在安裝SQL SERVER時,默認啟用了這樣的策略,而我當時輸入的sa密碼又很簡單(不滿足密碼復雜性要求),因此登陸時這些復雜的策略就禁止了登錄過程。同時也就導致了我不能修改sa用戶的信息(被自動鎖定)。明白了這個原理,再結合查到的一些資料,用如下T-SQL語句即可解決這個問題:
用WINDOWS賬戶登錄查詢分析器,輸入一下語句并執行: ALTER?LOGIN sa ENABLE ;?
GO?
ALTER?LOGIN sa?WITH?PASSWORD =?''?unlock, check_policy =?off, check_expiration =?off?;?
GO 完成后,重新啟動SQL SERVER服務,即可正常使用sa賬戶了。
P.S:還有個小問題,就是在新建數據庫時,如果都按默認值,會出錯,說“默認值無效”。后來發現這個必需在建立數據庫對話框中左邊的選項里手工修改“排序規則”。一般用China_PRC_CI_AS即可。
本文轉自sucre03 51CTO博客,原文鏈接:http://blog.51cto.com/sucre/354289,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的sql 2005 解除用户锁定(SA帐户被锁定)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 九个月搞定三轮融资,做 AI 导购的「智
- 下一篇: Fedora 13 Alpha测试手记横