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:![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMF4NKWRiNLSOTW629AsYuUfirvjDS9UuOv7lGRLuu7wRNHf_onkPXfmE5ewhs6luddiVavlzGkXeprjfhRhLlGBWndOm7deC7w_93uI20P0MVdnXW71O0PtAWWZKqnfTlv7EsfQt2-qE/s1600/block01.png)
Nếu ta dùng command line thì sẽ nhận được thông báo:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQgow8QsbtqVsv-VcV8-YjvywFSF2sfcs2jsg3vWti_ObxJwSGiuogZ0tPEYnpPA9G6pKzg5RPu3DlBKPsLYW8ItfrSA65P32j5_aQiFDeDYYE0iVhU2sPkIGMEkr6t9F1Xnp9NEUUWDs/s1600/block02.png)
That all!!!
Chúc các Bạn thành công
Thi
0 blogger:
Đăng nhận xét