SqlServer服務(wù)中利用觸發(fā)器對指定賬戶進行登錄ip限制提升安全性操作
轉(zhuǎn)眼間上次寫文章已經(jīng)是 2022年12月15日的事情啦,本來從2022年7月份開始寫作之后保持著每周一篇,然而從12月15日后斷更了這么久,經(jīng)歷了,隔離、陽、過年、從今天開始繼續(xù)堅持寫作,本片文章給大家分享 SqlServer服務(wù)中利用觸發(fā)器對指定賬戶進行登錄ip限制從而提升賬戶的安全性,這樣可以靈活的限制每個賬戶的允許登錄IP,類似于 PostgreSQL 中 pg_hba.conf 配置文件的功能,MySQL 則是在創(chuàng)建賬戶時可以配置賬戶允許登錄IP,下面記錄一下 SQLServer 如何實現(xiàn)。
在MySql數(shù)據(jù)庫中我們在創(chuàng)建一個新的用戶時是可以選擇這個用戶的可用連接ip的,比如localhost 或者 某個ip 甚至不做限制直接輸入 % 則表示這個用戶運行任意IP遠程連接,但是在微軟的MsSqlServer中在創(chuàng)建用戶時則沒有這樣的設(shè)置,但是有時候我們處于安全問題,想要限制某個賬戶只能通過某個IP訪問,通過防火墻設(shè)置的話會直接阻斷這個IP對所有賬戶的訪問,有點一棍子打死,不是我們想要的,這種情況下可以利用MsSqlServer數(shù)據(jù)庫中的觸發(fā)器來實現(xiàn)這個目的,當用戶請求連接數(shù)據(jù)庫時會觸發(fā)我們提前寫好的規(guī)則進行驗證是否允許連接。
登陸數(shù)據(jù)庫服務(wù)器之后,新建查詢輸入如下代碼:
請?zhí)鎿Q代碼中的xiaoming為你想要限制的數(shù)據(jù)庫賬戶名稱
CREATE TRIGGER [tr_con_limit_xiaoming] ON ALL SERVER WITH EXECUTE AS 'sa' FOR LOGON AS BEGIN --限制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;
執(zhí)行之后就會創(chuàng)建一個叫做 tr_con_limit_xiaoming 的觸發(fā)器,如下圖
這樣 xiaoming 這個賬戶就只允許通過 本地 和 192.168.1.2 和 192.168.1.3 這兩個IP連接了。
至此關(guān)于 SqlServer服務(wù)中利用觸發(fā)器對指定賬戶進行登錄ip限制提升安全性 就講解完了,有任何不明白的,可以在文章下面評論或者私信我,歡迎大家積極的討論交流,有興趣的朋友可以關(guān)注我目前在維護的一個 .NET 基礎(chǔ)框架項目,項目地址如下
https://github.com/berkerdong/NetEngine.git
https://gitee.com/berkerdong/NetEngine.git
到此這篇關(guān)于SqlServer服務(wù)中利用觸發(fā)器對指定賬戶進行登錄ip限制提升安全性的文章就介紹到這了,更多相關(guān)SqlServer服務(wù)登錄ip限制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
sql server 臨時表 查找并刪除的實現(xiàn)代碼
考慮使用表變量而不使用臨時表。當需要在臨時表上顯式地創(chuàng)建索引時,或多個存儲過程或函數(shù)需要使用表值時,臨時表很有用。通常,表變量提供更有效的查詢處理。2008-12-12遠程連接局域網(wǎng)內(nèi)的sql server 無法連接 錯誤與解決方法
下面我們依次介紹如何來解決這三個最常見的連接錯誤。2009-09-09SQL?Server中操作XML數(shù)據(jù)的示例詳解
在關(guān)系數(shù)據(jù)庫的世界中,SQL?Server?一直以其強大的功能脫穎而出,在本文中,我將探討如何在?SQL?Server?中存儲、查詢和操作?XML?數(shù)據(jù),需要的可以參考下2024-12-12