|
我要入营,结交更多好友,开启更多功能,轻松玩转服务器大本营!
您需要 登录 才可以下载或查看,没有账号?我要入营
x
目前有个需求,需要限制个别账号(或者其他权限较高的账号)的登录IP,降低访问的风险。
假设这里的需求是:限制 test账号,只能通过本机和几个固定的个IP登录MSSQL
1、使用sa账号登录
2、创建test登录账号
- CREATE LOGIN test WITH PASSWORD = 'Abcd@1234'
- GO
复制代码
3、创建登录触发器
- 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,则会出现如下报错:
SQL Server中使用登录触发器限制用户的访问地址
在未做限制前,test登录后,可以用sa账号查看到如下登录明细:
- 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;
复制代码
SQL Server中使用登录触发器限制用户的访问地址
感谢您的阅读,服务器大本营-技术文章内容集合站,助您成为更专业的服务器管理员! |
|