Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SQLServer中使用登录触发器限制用户的访问地址

SQLServer中使用登录触发器限制用户的访问地址

原创
作者头像
保持热爱奔赴山海
发布于 2024-09-24 12:09:33
发布于 2024-09-24 12:09:33
2670
举报
文章被收录于专栏:数据库相关数据库相关

目前有个需求,需要限制个别账号(或者其他权限较高的账号)的登录IP,降低访问的风险。

假设这里的需求是:限制 test账号,只能通过本机和几个固定的个IP登录MSSQL

代码语言:txt
AI代码解释
复制
0、使用sa账号登录

1、创建test登录账号
CREATE LOGIN test WITH PASSWORD = 'Abcd@1234'
GO

2、创建登录触发器
drop TRIGGER [tr_limit_ip] ON ALL SERVER ;

CREATE TRIGGER [tr_limit_ip]
ON ALL SERVER WITH EXECUTE AS 'sa'
FOR LOGON
AS
BEGIN


IF ORIGINAL_LOGIN()= 'test'
AND
(SELECT EVENTDATA().value('(/EVENT_INSTANCE/ClientHost)[1]', 'NVARCHAR(15)'))
NOT IN('<local machine>','192.168.31.181','192.168.31.17')
     ROLLBACK;
END;

如果test账号在其他IP尝试登录mssql,则会出现如下报错:

登录失败截图
登录失败截图

在未做限制前,test登录后,可以用sa账号查看到如下登录明细:

代码语言:txt
AI代码解释
复制
SELECT 
a.[session_id],a.[login_time],a.[host_name],
a.[original_login_name],b.[client_net_address]
FROM MASTER.sys.dm_exec_sessions a 
INNER JOIN MASTER.sys.dm_exec_connections b 
ON a.session_id=b.session_id;
会话明细截图
会话明细截图

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SQLServer中的锁等待巡检
在日常运维sqlserver的过程中,偶发慢事务或存储过程与DDL语句(改表或者修改索引)需要锁定相同的资源,造成锁等待,如果不及时发现和处理,将影响到业务系统的稳定性。
保持热爱奔赴山海
2024/10/01
1570
SqlServer服务中利用触发器对指定账户进行登录ip限制提升安全性
转眼间上次写文章已经是 2022年12月15日的事情啦,本来从2022年7月份开始写作之后保持着每周一篇,然而从12月15日后断更了这么久,经历了,隔离、阳、过年、从今天开始继续坚持写作,本片文章给大家分享 SqlServer服务中利用触发器对指定账户进行登录ip限制从而提升账户的安全性,这样可以灵活的限制每个账户的允许登录IP,类似于 PostgreSQL 中 pg_hba.conf 配置文件的功能,MySQL 则是在创建账户时可以配置账户允许登录IP,下面记录一下 SQLServer 如何实现。
乌拉栋
2023/03/06
7690
SqlServer服务中利用触发器对指定账户进行登录ip限制提升安全性
SQLServer中的DDL触发器
1 检测到drop table和alter table的sql,自动回滚并输入提示信息
保持热爱奔赴山海
2024/02/27
4270
解决session阻塞的问题
简介 对于数据库运维人员来说创建session或者查询时产生问题是常规情况,下面介绍一种很有效且不借助第三方工具的方式来解决类似问题。 最近开始接触运维工作,所以自己总结一些方案便于不懂数据库的同事解决一些不太紧要的数据库问题。类似方法很多理论也很多,我就不做深究,就是简单写一个方案,便于菜鸟使用的。 阻塞理解 在Sql Server 中当一个数据库会话中的事务正锁定一个或多个其他会话事务想要读取或修改的资源时,会产生阻塞(Blocking)。通常短时间的阻塞没有问题,且是较忙的应用程序所需要的。然
逸鹏
2018/04/11
1.3K0
解决session阻塞的问题
SQL Server巡检
保持热爱奔赴山海
2023/07/05
4220
SQL Server巡检
触发器记录表某一个字段数据变化的日志 包括插入insert 修改update 删除delete 操作
本文参考:http://www.cnblogs.com/lyhabc/articles/3236985.html
跟着阿笨一起玩NET
2018/09/18
1.9K0
绕过SQL Server的登录触发器限制
在做渗透测试任务时,我们常常会碰到一些直连SQL Server数据库的桌面应用。但偶尔也会碰到一些后端为SQL Server的应用,并且其只允许来自预定义的主机名或应用程序列表的连接。这些类型的限制通常是通过登录触发器来强制执行的。在本文中,我将向大家展示如何利用连接字符串属性欺骗主机名和应用程序名称来绕过这些限制。示例中将会包括SSMS和PowerUpSQL。这对于那些继承了旧式桌面应用的渗透测试人员和开发人员非常有用。
FB客服
2018/07/31
2.3K0
绕过SQL Server的登录触发器限制
使用触发器记录oracle用户登陆信息
      Oracle 提供了强大的审计功能,可以针对用户级,系统级范围,以及标准审计,细粒度审计等多种方式来审计各种数据库层面上的操作。然很多中小型数据库需要记录用户的登陆登出信息,而又不希望牺牲太多的性能。基于这种情形,使用基于数据库级别的触发器可以简单的实现这个需求。
Leshami
2018/08/13
9830
PostgreSQL用户登录失败自动锁定的解决办法
墨墨导读:PostgreSQL使用session_exec插件实现用户密码验证失败几次后自动锁定,本文介绍一种处理方案。
数据和云
2021/03/26
5.1K0
Oracle记录登录用户IP(触发器)
--创建单独表空间存放记录 create tablespace setb; --通过ctas从v$session创建session历史记录表指定表空间setb create table session_history tablespace setb as (select sid,username,program,machine,'000.000.000.000'ipadd,sysdate moditime from v$session where 0=1); --创建触发器,当有用户登录时,将记录插入s
Lucifer三思而后行
2021/08/17
1.2K0
Oracle记录登录用户IP(触发器)
使用sql_exporter+Prometheus监控sql server
最近接管了一套sql server alwayson集群,需要加些监控和告警,简单研究了下github的方案,发现了这种sql_exporter这种更简单,扩展性也超级强。(另一种是通过nodejs的方案监控,费事点,可扩展性也不太好,这里直接pass掉)。
保持热爱奔赴山海
2023/07/20
2K8
使用sql_exporter+Prometheus监控sql server
admin-琴里骚操作常规渗透测试思路
我看文章好像是最后弱口令拿下,我寻思你本地搭建起来,账户和密码安装CMS的时候肯定都知道啊。。Admin admin 进去这样搞意义不大啊。。。emmmm
字节脉搏实验室
2020/05/12
1.1K0
admin-琴里骚操作常规渗透测试思路
sqlserver简便创建用户并授权
很多研发人员程序连接SQL Server直接用的就是SA帐号。如果对数据库管理稍微严格一点的话,就不应该给应用程序这种权限,通常应用程序只需要进行增删改查,而很少有DDL操作,因此配置帐号时应该遵循“最小权限分配”的原则仅仅赋予所需的权限。
用户1217611
2019/05/25
1.9K0
SQL注入攻防入门详解
毕业开始从事winfrm到今年转到 web ,在码农届已经足足混了快接近3年了,但是对安全方面的知识依旧薄弱,事实上是没机会接触相关开发……必须的各种借口。这几天把sql注入的相关知识整理了下,希望大家多多提意见。 (对于sql注入的攻防,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避免后知后觉的犯下大错,专门查看大量前辈们的心得,这方面的资料颇多,将其精简出自己觉得重要的,就成了该文) 下面的程序方案是采用 ASP.NET + MSSQL,其他技术在设置上会有少许不同。 示例程序下载:
前朝楚水
2018/04/03
2.6K0
SQL注入攻防入门详解
实战篇:Oracle 巧记登录用户 IP,无所遁形
日常工作生产,我们一般都通过监听连接 Oracle 数据库。如果想要记录访问过数据库的用户 IP 地址,常规方式是无法做到的,但是可以通过一些非常规方式来实现。
Lucifer三思而后行
2022/01/08
1.4K0
实战篇:Oracle 巧记登录用户 IP,无所遁形
SQL注入语句和方法总结
前提需要工具(SQL Query Analyzer和SqlExec Sunx Version)
沙漠尽头的狼
2021/12/01
1.2K0
干货 | MSSQL注入和漏洞利用姿势总结
Microsoft SQL Server 是微软开发的关系型数据库管理系统。作为数据库服务器,它是一种软件产品,主要功能是根据其他软件应用程序的请求存储和检索数据,这些应用程序可以在同一台计算机上运行,也可以在网络(包括 Internet)上的另一台计算机上运行。SQL Server 默认开放的端口是 TCP 1433。
HACK学习
2023/01/03
7.3K0
干货 | MSSQL注入和漏洞利用姿势总结
SQLServer数据库注入详解
SQL Server数据库是由Microsoft开发和推广的关系数据库管理系统(DBMS),是一个比较大型的数据库。端口号为 1433。数据库后缀名 .mdf,注释符是 — 。延时命令:WAITFOR DELAY ‘0:0:2’
谢公子
2022/01/20
3.5K0
SQLServer数据库注入详解
30分钟全面解析-SQL事务+隔离级别+阻塞+死锁
 以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化。  本系列主要是针对T-SQL的总结。 概述: 本篇主要是对SQL中事务和并发的详细讲解。 一、事务 1.什么是事务 为单个工作单元而执行的一系列操作。如查询、修改数据、修改数据定义。 2.语法 (1)显示定义事务的开始、提交 BEGIN TRAN INSERT INTO b(t1) VALUES(1) INSERT INTO b(t1) VALUES(2) COMMIT TRAN (2)隐式定义 如果不显示定
悟空聊架构
2018/05/18
1.5K0
史上最详细的sqlServer手工注入详解
MSSQL是指微软的SQL Server数据库服务器,它是一个数据库平台,提供数据库的从服务器到终端的完整的解决方案,其中数据库服务器部分,是一个数据库管理系统,用于建立、使用和维护数据库。属关系型数据库
Power7089
2020/07/27
14.6K0
史上最详细的sqlServer手工注入详解
相关推荐
SQLServer中的锁等待巡检
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档