在数据库使用过程中,为了数据的安全,除了通过服务器防火墙设置访问权限外,还可以通过在数据库中通过创建触发器的方式来控制用户或特定IP的登录权限。
USE master;
创建数据库登录账号lg_test
CREATE LOGIN lg_test WITH PASSword = '3KH66587@';
赋予用户查看服务状态权限
GRANT VIEW SERVER STATE TO lg_test;
创建登录触发器,限制指定的IP192.168.0.83登陆数据库
CREATE TRIGGER connection_limit_trigger
ON ALL SERVER WITH EXECUTE AS 'lg_test'
FOR LOGON
AS
BEGIN
IF ORIGINAL_LOGIN()= 'lg_test' AND
(SELECT EVENTDATA().value('(/EVENT_INSTANCE/ClientHost)[1]', 'NVARCHAR(15)'))
IN('192.168.0.83')
ROLLBACK;
END;
--删除该登录触发器
drop TRIGGER connection_limit_trigger ON ALL SERVER