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限制提升安全性的更多相关文章
- sql-server数据库中利用触发器实现表与表之间的级联删除
create trigger Delete_Student --创建一个触发器 on student instead of delete as declare @sno varchar() selec ...
- 利用VisualVM监测Azure云服务中的Java应用
在做Java开发的时候,我们需要在上线之前对程序进行压力测试,对程序的性能进行全面的监控,了解JVM的CPU,内存,GC,classes,线程等等信息,或者在程序上线运行的过程当中以便于诊断问题或者对 ...
- sqlserver服务启动后停止,传递给数据库 'master' 中的日志扫描操作的日志扫描号无效
电脑异常重启,导致SqlServer服务启动后,自动停止,在[计算机管理]-[事件查看器]-[windows日志]中进行查看系统错误日志,在[应用程序]下发现可能的错误信息有以下两条: 1.错误:传递 ...
- 在Delphi开发的服务中调用指定应用程序
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://fxh7622.blog.51cto.com/63841/529033 在很多时候 ...
- 为运行Microsoft Dynamics CRM 异步处理服务指定账户没有性能计数器权限
CRM 2016 安装 为运行Microsoft Dynamics CRM 应用程序指定账户没有性能计数器权限 为运行Microsoft Dynamics CRM 异步处理服务指定账户没有性能计数器权 ...
- 在DataWorks中实现指定UDF只能被指定账户访问
背景 之前写过一篇文章是关于“DataWorks和MaxCompute内部权限体系的区别”有兴趣的朋友可以点击阅读查看详情.但是还是有些同学会问,我如何在DataWorks中实现我的具体某个Resou ...
- sqlserver 插入数据时异常,仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'XXXXX.dbo.XXXXXXXXX'中的标识列指定显式值。
INSERT INTO XXXXXXXXX.dbo.XXXXXXXXX select * from XXXXXXXXX 仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'X ...
- 利用Java Service Wrapper将java项目添加到windows服务中
1.web项目,即tomcat/resin添加至window系统服务,步骤如下:第一步:找到tomcat的bin目录,如:D:\apache-tomcat-8.0.26\bin第二步:打开cmd,cd ...
- [.net 面向对象程序设计进阶] (21) 反射(Reflection)(下)设计模式中利用反射解耦
[.net 面向对象程序设计进阶] (21) 反射(Reflection)(下)设计模式中利用反射解耦 本节导读:上篇文章简单介绍了.NET面向对象中一个重要的技术反射的基本应用,它可以让我们动态的调 ...
- wp8.1 Study16:网络之 使用Azure移动服务及利用Azure推送通知服务
一.WP8.1有关网络的API WP8.1与其它平台的对比如下图: 二.Azure移动服务 前提: Azure移动服务可以让使用者的数据存放在云空间,从而方便使用者的App在不同平台上的数据共享. 1 ...
随机推荐
- 可编程渲染管线(Scriptable Render Pipeline, SRP)
原文链接 可编程渲染管线处理数据的流程可分为以下3大阶段 1. 应用阶段 这个阶段大概会由CPU处理4件事情.首先会对模型数据进行可见性判断.模型数据由顶点位置.法线方向.顶点颜色.纹理坐标等构成.然 ...
- 深入学习SpringBoot
1. 快速上手SpringBoot 1.1 SpringBoot入门程序开发 SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程 1. ...
- 接入监控视频,为啥还需要对接厂商的SDK呢,不是有onvif这样的标准协议吗?
不少人问过我这个问题,这真是一个好问题. 我举两个例子,让您仔细品: ① 快速打开视频和极致操控的问题. onvif协议很科班,但厂商的sdk可能会给你一些独特的方法,譬如先make一个I帧,这样第一 ...
- Https Webservice接口的免证书调用
目录 前言 思路 方案 Axis调用 HttpClient调用 参考链接 前言 在调用https协议的Webservice接口时,如果没有做证书验证,一般会报javax.net.ssl.SSLHand ...
- Go map 竟然也会发生内存泄露?
Go 程序运行时,有些场景下会导致进程进入某个"高点",然后就再也下不来了. 比如,多年前曹大写过的一篇文章讲过,在做活动时线上涌入的大流量把 goroutine 数抬升了不少,流 ...
- hwlog--limiter.go
// Copyright(C) 2021. Huawei Technologies Co.,Ltd. All rights reserved.// Package limiter implement ...
- Kubernetes基础_Service暴露的两种方式
一.前言 kubernetes集群中,pod是多变的,可以被新建或删除,而且ip不稳定,不方便集群外部访问,所以提供了一种新的资源 Service ,就是就是 a set of Pod ,作用是提供一 ...
- Devexpress中gridControl设置一列不可以编辑
gridView1.Columns["列名"].OptionsColumn.AllowEdit = false;//设置列不可以编辑 记录一下. 大家如果有问题可以 Consol ...
- React综合使用联系
index.js import React from 'react' import ReactDOM from 'react-dom' import CartSimple from './CartSi ...
- Mybatis——Plus :表与表之间的关系:1对多和多对一
Mybatis--plus我大致整理出两种方案: 第一种:第三方mybatis-plus 插件,注解式开发 Mybatis-Plus-Relation ( mprelation ) : mybatis ...