Anda dapat menggunakan Pemicu Logon untuk itu.
CREATE TRIGGER TR_check_ip_address
ON ALL SERVER
FOR LOGON
AS
BEGIN
DECLARE @ip_addr varchar(48)
SELECT @ip_addr = client_net_address
FROM sys.dm_exec_connections
WHERE session_id = @@SPID
IF ORIGINAL_LOGIN() = 'bob' AND @ip_addr <> '127.0.0.1'
ROLLBACK;
END
Jika Anda mencoba terhubung dari IP yang tidak sah, Anda akan mendapatkan kesalahan:
Logon failed for login 'bob' due to trigger execution.
Ingatlah bahwa Pemicu Logon berpotensi jahat dan mungkin juga akan mengunci semua orang dari instance. Hati-hati!
Namun, saya pikir Anda tidak benar-benar perlu melakukan itu. Jika Anda ingin mengaktifkan koneksi dari daftar alamat yang diketahui, firewall adalah alat yang paling cocok untuk pekerjaan itu . Hal terburuk yang bisa terjadi adalah pengguna yang salah terhubung dari alamat IP yang dikenal, yang sangat tidak mungkin jika pengguna menjaga kredensial mereka dengan cermat.
Juga, pertimbangkan bahwa alamat IP dapat dipalsukan, jadi saya tidak yakin tingkat keamanan tambahan apa yang akan Anda berikan.