在數據庫使用過程中,為了數據的安全,除了通過服務器防火墻設置訪問權限外,還可以通過在數據庫中通過創建觸發器的方式來控制用戶或特定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