|
|
|
联系客服020-83701501

[MSSQL] 重建密碼一樣的帳號

联系在线客服,可以获得免费在线咨询服务。 QQ咨询 我要预约
[MSSQL] 重建密碼1樣的帳號

因為SQL Server 2005即將結束服務(EOS),以是公司內有1些比較弥留的系統就有考慮要進行升級或移轉服務,

User也企望經過測試再進行正式的服務移轉,是以通常會此外安裝新機,而不會原機升級,

在資料庫中可以或许有得多的系統帳號必要移轉,便可以或许透過如上行动法式來進行R三0;

要還原帳號,不过乎是還原原先的權限以及确立1樣的密碼,

通常帳號在幫User确立,密碼交出去之後應該也忘光了(有确立密碼原則的例外),

若是帳號不多,花點時間1個1個跟User要也是1種行动法式,但若是數量超過5個,我想1般人也懶得問了,

當然若是1切能透過Script完成是最佳的,但想也知道,密碼怎麼可以或许用明碼的口头存在呢R三0;

 

透過如下的語法可以或许查到目前這個資料庫中以哪些帳號以及密碼,

Default
12三4 SELECT name, passwordFROM sysloginsWHERE password IS NOT NULLORDER BY name

從查到的資訊來看,還真的是亂碼R三0;

若是把帳號用script匯出,密碼的欄位1樣是看不懂的,

當然,這個語法還是可以或许拿來建帳號,但独霸記得的密碼拿來登入,會得到密碼錯誤的訊息,

怎麼辦呢??

 

检查MSDN中CREATE LOGIN的語法,有1個option叫HASHED,体现我們可以或许透過HASH過的密碼來确立帳號,

Default
12三 <option_list1> ::=     PASSWORD = { 'password' | hashed_password HASHED } [ MUST_CHANGE ]    [ , <option_list2> [ ,... ] ]

透過底下的語法,我們可以或许得到被加密的字串,

Default
12三4 SELECT name, LOGINPROPERTY(name, 'PasswordHash' ) hashFROM sysloginsWHERE password IS NOT NULLORDER BY name

便可以或许改用如下的語法把帳號建归去了,

Default
CREATE LOGIN TEST WITH PASSWORD = 0x0200FD89B0E958三61F2D8DD16B05三1七E55BFA602014F七D三34D1BB605A9F七22A七1A9FBAC9A七AE1三2F1DC16126七CFE8七EF2七6B七6EC15A00CADF9626021E三9462CAA02七16DFAFE5 HASHED;

接著透過匯出的權限語法可以或许sp_change_users_logi這個procedure,1一把權限确立或連結归去就好。

via@喵語地面

数安新闻+更多

证书相关+更多