忘記SQL Server的SA使用者密碼解決方案
台式機和本本分別安裝了MS SQL Server,方便做測試用
結果時間長了,台式機SQL Server的密碼忘記了……
難道……沒有辦法了嗎?——No!
經過一陣子鬱悶,遊俠在百度搜到了方法:
現在你的企業管理器當然是進不去了,但是我們還有查詢分析器
驗證的時候,選擇按照Windows身分識別驗證,就直接進去了……汗!
輸入下列命令,執行:
exec sp_password null,'新密碼','sa'
好了,現在密碼已經改變了,到企業管理器看看 ^_^
下面是我在SQL Server的協助看到的關於預存程序 sp_password的說明:
sp_password
添加或更改 Microsoft SQL Server 登入的密碼。
文法
sp_password [ [ @old = ] 'old_password' , ]
{ [ @new =] 'new_password' }
[ , [ @loginame = ] 'login' ]
參數
[@old =] 'old_password'
是舊密碼。old_password 為 sysname 類型,其預設值為 NULL。
[@new =] 'new_password'
是新密碼。new_password 為 sysname 類型,無預設值。如果沒有使用具名引數,就必須指定 old_password。
[@loginame =] 'login'
是受密碼更改影響的登入名稱。login 為 sysname 類型,其預設值為 NULL。login 必須已經存在,並且只能由 sysadmin 固定伺服器角色的成員指定。
傳回碼值
0(成功)或 1(失敗)
注釋
SQL Server 密碼可包含 1 到 128 個字元,其中可包括任何字母、符號和數字。
新密碼以加密的形式更新和儲存,因此,任何使用者(甚至系統管理員)都不能查看密碼。
當 sysadmin 或 securityadmin 固定伺服器角色的成員使用帶全部三個參數的 sp_password 重新設定他們自己的密碼時,審核記錄反映的卻是他們正在更改別人的密碼。
sp_password 不能用於 Microsoft Windows NT 安全帳戶。通過 Windows NT 網路帳戶串連到 SQL Server 的使用者是由 Windows NT 授權的,因此其密碼只能在 Windows NT 中更改。
sp_password 不能在使用者定義的事務中執行。
許可權
執行許可權預設地授予 public 角色,以供使用者更改自己的登入密碼。只有 sysadmin 角色的成員可更改其他使用者的登入密碼。
樣本
A.無原密碼的情況下更改登入密碼
下面的樣本將登入 Victoria 的密碼更改為 ok。
EXEC sp_password NULL, 'ok', 'Victoria'
B.更改密碼
下面的樣本將登入 Victoria 的密碼由 ok 改為 coffee。
EXEC sp_password 'ok', 'coffee'