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