Brzmi jak coś, co robisz przy użyciu zapory systemu Windows (możesz zablokować port(y) SQL Server i zezwolić na wyjątki dla niektórych adresów IP).
Możesz to zrobić za pomocą wyzwalacza logowania, który sprawdza adres IP za pomocą sys.dm_exec_connections, ale myślę, że jest to znacznie mniej pożądana opcja niż całkowite zablokowanie ruchu.
Z pewnością o wiele trudniejsze do zrobienia na poziomie bazy danych.