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_ipaddress
ON
ALL
SERVER
FOR
LOGON
AS
BEGIN
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
END
END
GO
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