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 :
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 :
L’article complet est ici : https://www.sqlservercentral.com/articles/Security/66151/