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

