SqlServer服務中利用觸發器對指定賬戶進行登錄ip限制提升安全性操作
轉眼間上次寫文章已經是 2022年12月15日的事情啦,本來從2022年7月份開始寫作之后保持著每周一篇,然而從12月15日后斷更了這么久,經歷了,隔離、陽、過年、從今天開始繼續堅持寫作,本片文章給大家分享 SqlServer服務中利用觸發器對指定賬戶進行登錄ip限制從而提升賬戶的安全性,這樣可以靈活的限制每個賬戶的允許登錄IP,類似于 PostgreSQL 中 pg_hba.conf 配置文件的功能,MySQL 則是在創建賬戶時可以配置賬戶允許登錄IP,下面記錄一下 SQLServer 如何實現。
在MySql數據庫中我們在創建一個新的用戶時是可以選擇這個用戶的可用連接ip的,比如localhost 或者 某個ip 甚至不做限制直接輸入 % 則表示這個用戶運行任意IP遠程連接,但是在微軟的MsSqlServer中在創建用戶時則沒有這樣的設置,但是有時候我們處于安全問題,想要限制某個賬戶只能通過某個IP訪問,通過防火墻設置的話會直接阻斷這個IP對所有賬戶的訪問,有點一棍子打死,不是我們想要的,這種情況下可以利用MsSqlServer數據庫中的觸發器來實現這個目的,當用戶請求連接數據庫時會觸發我們提前寫好的規則進行驗證是否允許連接。
登陸數據庫服務器之后,新建查詢輸入如下代碼:
請替換代碼中的xiaoming為你想要限制的數據庫賬戶名稱
CREATE TRIGGER [tr_con_limit_xiaoming]ON ALL SERVER WITH EXECUTE AS "sa"FOR LOGONASBEGIN--限制xiaoming這個帳號的連接IF ORIGINAL_LOGIN()= "xiaoming"--允許xiaoming在本機和下面的IP登錄AND(SELECT EVENTDATA().value("(/EVENT_INSTANCE/ClientHost)[1]", "NVARCHAR(15)"))NOT IN("","192.168.1.2","192.168.1.3") ROLLBACK;END;
執行之后就會創建一個叫做 tr_con_limit_xiaoming 的觸發器,如下圖
這樣 xiaoming 這個賬戶就只允許通過 本地 和 192.168.1.2 和 192.168.1.3 這兩個IP連接了。
至此關于 SqlServer服務中利用觸發器對指定賬戶進行登錄ip限制提升安全性 就講解完了,有任何不明白的,可以在文章下面評論或者私信我,歡迎大家積極的討論交流,有興趣的朋友可以關注我目前在維護的一個 .NET 基礎框架項目,項目地址如下
https://github.com/berkerdong/NetEngine.git
https://gitee.com/berkerdong/NetEngine.git
到此這篇關于SqlServer服務中利用觸發器對指定賬戶進行登錄ip限制提升安全性的文章就介紹到這了,更多相關SqlServer服務登錄ip限制內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!
