最近這幾天,服務器的數據庫(SQLSERVER)老是遭受到攻擊,有人不斷地輪訓想登陸數據庫,從SQL的日志里可以看出來,一開始我是通過本地安全策略禁用了對應的幾個攻擊ip,同時把數據庫的sa賬號給禁用了,想着應該可以了吧,畢竟我的服務器上面沒啥那么珍貴的,何必這樣揪着不放呢?!誰知道第二天起來看,卧槽,竟然還在攻擊,換了ip,同時不斷地更改數據庫賬戶來攻擊。日志圖如下:
然后我就准備更改數據庫的默認端口號,免得再被攻擊,哎,我也蛋疼,更改數據庫默認端口號,意味着我要更改每個應用的配置文件,但是沒辦法,改吧!
但是改的過程中,也出現過一些問題,在這里記錄下來。
如果更改SQLSERVER的默認端口號呢?MSSQL的默認端口是1433,在“SQLSERVER 配置管理器”中可以更改,如下:
更改完之后,要檢查下,該"TCP/IP"是否已經啟用,否則不起作用,更改完之后,重啟SQLSERVER配置管理器里面的服務:
這時候,退出MSSQL客戶端,重新登錄數據庫,在這里我就以為數據庫連接是:localhost:端口,試了幾次都不行,原來中間是用逗號而不是冒號的,所以數據庫連接應該是:localhot,端口, 這樣就可以了。然后更改每個應用的配置文件,在數據庫訪問連接中要加上端口號: <add name="ZhuChengWang" providerName="System.Data.SqlClient" connectionString="Server=localhost,2321;Database=xxx;Persist Security Info=True;User ID=xxx;Password=xxx;Connect Timeout=600"/>,試了一下可以。
最后,還有一個坑,是什么呢?我在我本地用MSSQL客戶端去連接服務器的數據庫的時候,數據庫鏈接是1.2.3.4,端口,怎么連接都連不上,為什么了,應用可以訪問,在服務器上用MSSQL客戶端也可以訪問,為什么我本地就不行呢?這說明數據庫現在是本地可以訪問,外網訪問不了,為啥呢?原來是忘了在服務器防火牆規則里面把前面修改后的數據庫端口號開通外網訪問了,坑……最后當然是在防火牆規則里面開了就可以了啊