1. 程式人生 > 實用技巧 >限制sa 登入IP

限制sa 登入IP

MSSQL-SA賬號安全限制

約定規則:

  觸發器名稱:forbiddensa

執行DB:

  master

1.刪除觸發器

  drop trigger forbiddensa on ALL server ;

2.構建觸發器

CREATE TRIGGER forbiddensa
ON ALL SERVER
WITH EXECUTE AS 'sa'
FOR LOGON
AS
BEGIN
    --選擇sa使用者進行限制:
    IF ORIGINAL_LOGIN() = 'sa'
       AND
    --允許sa在本機登入
    (
        SELECT EVENTDATA().value('(/EVENT_INSTANCE/ClientHost)[1]', 'NVARCHAR(15)')
    ) NOT IN ( '<local machine>', '127.0.0.1', '192.168.1.181', '192.168.1.176', '192.168.101.85' )
    --NOT IN('<local machine>','127.0.0.1','192.168.1.181','192.168.101.85')
    BEGIN
        ROLLBACK;
    END;
END;

GO

  指令碼說明:需要放行的IP就放到IP清單後面

3.安全測試

  在未指定IP的機子裡面連線當前SQL服務時,基於合理的提示,則說明安全設定成功,具體提示如下:

    

4.檢視連線

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;

5.測試反饋

  測試Ok