Lu sur le Web : Blocking Users by IP

Dans des scénarios de ce type, la sécurité des accès est particulièrement importante :

image

Avec un trigger sur la connexion et  un appel à la fonction EVENTDATA() le tour est joué :

    1:  CREATE TRIGGER tr_logon_CheckIP  
    2:  ON ALL SERVER 
    3:  FOR LOGON 
    4:  AS 
    5:  BEGIN 
    6:    IF IS_SRVROLEMEMBER('sysadmin') = 1 
    7:    BEGIN 
    8:     DECLARE @IP NVARCHAR(15); 
    9:     SET @IP = (SELECT EVENTDATA().value('(/EVENT_INSTANCE/ClientHost) [1]', 'NVARCHAR(15)')); 
   10:     IF NOT EXISTS(SELECT IP FROM DBAWork.dbo.ValidIP WHERE IP = @IP) 
   11:       ROLLBACK; 
   12:    END; 
   13:  END; 
   14:  GO   

Et voilà le résultat :

image

L’article complet est ici : https://www.sqlservercentral.com/articles/Security/66151/ _us