Tạo bảng dữ liệu chứa IP mà ta chặn
CREATE TABLE master.dbo.IPBLock (ipaddress VARCHAR(15))
và thêm vài dữ liệu IP
INSERT INTO IPBLock VALUES('192.168.1.3')INSERT INTO IPBLock VALUES('192.168.1.4')INSERT INTO IPBLock VALUES('10.100.25.*')Tạo Trigger chặn khi họ đăng nhập vào MSSQL Server.
Chạy đoạn Script sau với quyền quản trị MSSQL Server:
CREATE TRIGGER block_ipaddressON ALL SERVERFOR LOGONASBEGIN DECLARE @capturedip NVARCHAR(15); SET @capturedip = (SELECT EVENTDATA().value('(/EVENT_INSTANCE/ClientHost)[1]', 'NVARCHAR(15)')); IF EXISTS(SELECT ipaddress FROM master.dbo.IPBLock WHERE ipaddress = @capturedip) BEGIN Print 'Your IP Address is blocked, Contact Administrator' ROLLBACK END ELSE BEGIN DECLARE @IPRange VARCHAR(15) SELECT @IPRange= SUBSTRING(@capturedip,1,LEN(@capturedip)-CHARINDEX('.',REVERSE(@capturedip)))+'.*' IF EXISTS(SELECT ipaddress FROM master.dbo.IPBLock WHERE ipaddress = @IPRange) BEGIN Print 'Your IP Address Range is blocked, Contact Administrator' ROLLBACK END ENDENDGO TEST & Kết Quả
Bây giờ ta dùng một địa chỉ IP Public để truy cập thử vào MSSQL Server bằng SSMS thì ta nhận được thông báo sau:
Nếu ta dùng command line thì sẽ nhận được thông báo:

That all!!!
Chúc các Bạn thành công
Thi
0 blogger:
Đăng nhận xét