SqlServer服务中利用触发器对指定账户进行登录ip限制提升安全性操作
作者:张晓栋 时间:2024-01-26 12:24:32
转眼间上次写文章已经是 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 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;
执行之后就会创建一个叫做 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
来源:https://www.cnblogs.com/berkerdong/p/17090659.html
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
YOLOv5部署到web端详细过程(flask+js简单易懂)
![](https://img.aspxhome.com/file/2023/7/123827_0s.png)
在SQL Server中实现最短路径搜索的解决方法
![](https://img.aspxhome.com/file/2023/0/127990_0s.png)
聚合函数和group by的关系详解
![](https://img.aspxhome.com/file/2023/9/69269_0s.png)
详解Django+Uwsgi+Nginx的生产环境部署
![](https://img.aspxhome.com/file/2023/3/89193_0s.png)
Python字符串拼接、截取及替换方法总结分析
python中使用百度音乐搜索的api下载指定歌曲的lrc歌词
Laravel配置全局公共函数的方法步骤
Python正则表达re模块之findall()函数详解
如何利用Python写个坦克大战
![](https://img.aspxhome.com/file/2023/4/127114_0s.gif)
python的几种矩阵相乘的公式详解
Python tkinter模块弹出窗口及传值回到主窗口操作详解
![](https://img.aspxhome.com/file/2023/3/61173_0s.jpg)
在Windows的Apache服务器上配置对PHP和CGI的支持
Python3实现并发检验代理池地址的方法
图文详解mysql5.7安装教程
![](https://img.aspxhome.com/file/2023/4/102394_0s.png)
SQLServer 附加数据库后出现只读或失败的解决方法
MYSQL使用正则表达式过滤数据
![](https://img.aspxhome.com/file/2023/0/112880_0s.png)