iT邦幫忙

0

MSSQL 定時自動改密碼

想請問各位大大以下問題:
由於公司資安政策 需要每兩個月改一次sa密碼
但是公司server太多了 手動改要花很多時間
我目前的想法是這樣(如圖):

1.用一個主要伺服器裡面設改sa密碼的排程

2.選"以多部伺服器為目標" 讓我設定的目標伺服器執行改密碼的語法
但是我在設主要&目標伺服器的時候不斷出現錯誤
像是這個:

最後我被弄得心煩意亂 有點想放棄這個方法
我改密碼的語法如下:

ALTER LOGIN sa WITH
	CHECK_POLICY = ON,
	CHECK_EXPIRATION  = ON,
    PASSWORD = 'newpassword'   
    OLD_PASSWORD = 'oldpassword';  

請問大大有辦法可以只設DB link就可以直接對多伺服器下此語法的方法嗎?
謝謝大家幫忙!!
/images/emoticon/emoticon41.gif

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
3
rogeryao
iT邦超人 8 級 ‧ 2021-03-09 18:04:06
最佳解答

請參閱 : How to Reset SA Password in SQL Server Manually?
In case if there is a remote Microsoft SQL Server instance being used, you need to use its remote server name or IP address:
https://ithelp.ithome.com.tw/upload/images/20210309/20085021PZslU1AhXp.png

以下指令實測 OK.

C:\>osql -S "192.168.2.12\SQLEXPRESS" -U "sa" -P "xyz123" -Q "exec sp_password null,'abc123','sa'"

server_name : 192.168.2.12 (遠端伺服器)
instance_name : SQLEXPRESS
原密碼 : xyz123 
新密碼 : abc123 

我突然想到他這個無法跑系統排程@@...
排程是指令都固定下才能跑~但是他每次都要換新密碼..
因為每次密碼都是指定變更~頂多執行Bat檔0.0a

lulu_meat iT邦研究生 5 級 ‧ 2021-03-10 11:02:41 檢舉

謝謝高手的回答!
我用您的方法測試成功了!
密碼的部分不用擔心!
主管說只要密碼有定時更改的紀錄就可以了~(所以密碼一樣也沒關係)
/images/emoticon/emoticon02.gif

rogeryao iT邦超人 8 級 ‧ 2021-03-10 11:06:47 檢舉

1.系統排程跑 bat 檔 : 將產生密碼的方式(邏輯)寫在程式內,用程式產出 bat檔.
2.系統排程跑執行檔 : 將產生密碼的方式(邏輯)寫在程式內並在程式內執行 cmd

2
海綿寶寶
iT邦大神 1 級 ‧ 2021-03-09 17:00:26

1.我沒做過這件事
2.Google 到這篇供參考
3.做好心理準備

lulu_meat iT邦研究生 5 級 ‧ 2021-03-09 17:05:54 檢舉

謝謝大大回應!
您提供的連結好像是偏向一台一台改密碼的方式~
我在想最壞的做法就是在每一台server埋一支排程
但是可能會被AP看到sa密碼就是了

1.我沒做過這件事
2.只要是能在 command line 下的指令,幾乎就可以寫成「批次檔」-->一台一台修改密碼

lulu_meat iT邦研究生 5 級 ‧ 2021-03-10 10:58:33 檢舉

原來如此!
謝謝大神的回答!!/images/emoticon/emoticon07.gif

3
純真的人
iT邦大師 1 級 ‧ 2021-03-09 17:18:36

我有一個想法~你可以試試~
用bat檔~批次更改所有伺服器@@

osql -U 登入帳號 -P 登入密碼 -S 伺服器IP位置 -n -Q "SQL命令"

若可以改成功~就用系統排程去執行bat檔更改相關伺服器@@..

以上我是用來做自訂義資料庫備份用的@@...

看更多先前的回應...收起先前的回應...
rogeryao iT邦超人 8 級 ‧ 2021-03-09 17:26:05 檢舉

我比較好奇的是 Sql Server sa 密碼改了,那相關的應用程式要怎麼處
理才能登入 Sql Server ?

as0500 iT邦新手 4 級 ‧ 2021-03-09 17:43:28 檢舉

理論上是不應該使用 sa 來做那些事的,
權限太大很容易出事。

rogeryao
當然都要改呀@@...改密碼就是這麼痛苦...

lulu_meat iT邦研究生 5 級 ‧ 2021-03-10 10:59:29 檢舉

謝謝高手的回答!
目前測試成功了! 謝謝您!/images/emoticon/emoticon32.gif

lulu_meat iT邦研究生 5 級 ‧ 2021-03-10 11:05:22 檢舉

真的很抱歉 我本來想選您和roger大大一起當最佳解答
結果好像只能選一個?!/images/emoticon/emoticon02.gif

沒關係唷~

1
SQLChat
iT邦新手 5 級 ‧ 2021-03-09 21:33:17

如果是我的話, 我會試著用用 CMS (Central Management Server) 解決這個問題. 提供你參考.

https://docs.microsoft.com/en-us/sql/relational-databases/administer-multiple-servers-using-central-management-servers?view=sql-server-ver15

SQLChat iT邦新手 5 級 ‧ 2021-03-10 01:00:00 檢舉

另外一個想法是 disable/停用 sa,然後使用 AD (Active Directory) domain user 或 group 來管理所有的 SQL instances. 定期更改密碼的工作及程序就讓 AD 負責就好。

參考:
SQL Server 安全性設定 - 心得分享

lulu_meat iT邦研究生 5 級 ‧ 2021-03-10 11:03:44 檢舉

謝謝您的回答!
比較麻煩的是公司很多工作都是用sa帳號來啟用
改密碼真的會超麻煩的XD

我要發表回答

立即登入回答