SqlServer服务中利用触发器对指定账户进行登录ip限制提升安全性操作

 更新时间:2023年02月04日 08:35:07   作者:张晓栋  
这篇文章主要介绍了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 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 

到此这篇关于SqlServer服务中利用触发器对指定账户进行登录ip限制提升安全性的文章就介绍到这了,更多相关SqlServer服务登录ip限制内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SQL2008的sa账户被禁用其他账户无法连接的快速解决方法

    SQL2008的sa账户被禁用其他账户无法连接的快速解决方法

    这篇文章主要介绍了SQL2008的sa账户被禁用其他账户无法连接的快速解决方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-03-03
  • SQLServer三种开窗函数详细用法

    SQLServer三种开窗函数详细用法

    本文主要介绍了SQLServer三种开窗函数详细用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • 一些 T-SQL 技巧

    一些 T-SQL 技巧

    一些 T-SQL 技巧...
    2006-12-12
  • 全国省市区县最全最新数据表(数据来源谷歌)

    全国省市区县最全最新数据表(数据来源谷歌)

    因为工作项目需求,需要一个城市县区数据表,上网搜了下,基本都不全,所以花了3天时间整理了一遍.
    2010-04-04
  • SQLServer2000 报1053错误(服务没有及时响应或控制请求)的解决方法

    SQLServer2000 报1053错误(服务没有及时响应或控制请求)的解决方法

    发生错误 1053-(服务没有及时响应或控制请求。),此时正在 MSSQLServer 服务上执行该服务操作。我立即上网查找相关信息,看见有人说是更改windows用户密码后便出现此类问题,但说得都不是很明白,所以自己想总结一下
    2013-06-06
  • sql集合运算符使用方法

    sql集合运算符使用方法

    今天介绍数据库里面的集合运算符,它是指匹配集合的每一个结果。数据库集合运算符包括:IN、ANY、SOME、ALL以及EXISTS等
    2014-01-01
  • 一条语句简单解决“每个Y的最新X”的经典sql语句

    一条语句简单解决“每个Y的最新X”的经典sql语句

    “每个Y的最新X”是一个经典的SQL问题,工作中经常碰到。当然不是“按Y分组求最新的X值”那么简单,要求最新X的那条记录或主键ID。用一条SQL语句可以简单的解决此问题。 生成实例表和数据:
    2008-03-03
  • SQL语句中的ON DUPLICATE KEY UPDATE使用

    SQL语句中的ON DUPLICATE KEY UPDATE使用

    本文主要介绍了SQL语句中的ON DUPLICATE KEY UPDATE使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • SQL查询数据是否存在的实现示例

    SQL查询数据是否存在的实现示例

    在后端开发中,经常需要使用数据库来存储和管理数据,一个常见的任务是检查数据库中是否存在数据,本文主要介绍了SQL查询数据是否存在,感兴趣的可以了解一下
    2024-02-02
  • 数据库访问性能优化

    数据库访问性能优化

    这篇文章主要介绍了数据库访问性能优化,小编总结了一些面向程序员的基本优化法则,本文将结合实例来坦述数据库开发的优化知识,需要的朋友可以参考下
    2015-08-08

最新评论