메뉴 닫기

MSSQL 2008 특정 아이피 접근차단 방법 MSSQL 쿼리문

보통 특정아이피 접근을 차단 하는 방법은 윈도우 나 리눅스나 OS 자체에서 기본적으로 제공해주고 있는

iptables, 윈도우 방화벽등을 이용하면 쉽게 차단을 할 수 있습니다

특정 하게 웹은 허용하고 데이터베이스 접속만 차단 할 경우에는 포트방식으로 차단 해도 가능하지만 아래방법과 같이

MSSQL 쿼리문을 이용해서 특정아이피 접근을 차단 할 수 있습니다

 

  1. 관리용 데이터베이스 생성

    CREATE DATABASE DBBlock

    GO

     

    USEDBBlock

    GO

     

    –접근 허용 목록 테이블 생성

    CREATE TABLE dbo.ValidIP (

      IP NVARCHAR(15),

      CONSTRAINT PK_ValidIP PRIMARY KEY CLUSTERED (IP)

    );

    GO

     

    INSERT INTO dbo.ValidIP (IP) VALUES (‘115.68.24.x’);

    GO

  2. 로그인 체크 Trigger 생성

    USE MASTER

    GO

    CREATE TRIGGER tr_logon_CheckIP 

    ON ALL SERVER

    FOR LOGON

    AS

    BEGIN

      IF IS_SRVROLEMEMBER(‘sysadmin’) = 1

      BEGIN

       DECLARE @IP NVARCHAR(15);

       SET @IP = (SELECT EVENTDATA().value(‘(/EVENT_INSTANCE/ClientHost)[1]’, ‘NVARCHAR(15)’));

       IF NOT EXISTS(SELECT IP FROM DBBlock.dbo.ValidIP WHERE IP = @IP)

         ROLLBACK;

      END;

    END;

    GO

 

위와 같이 설정을 하고 MSSQL 매니지먼스 스튜디오를 통하여 접속을 할 경우 접속이 거부되었다는 팝업창을 확인 할 수 있습니다

 

3. 로그인 차단 부분 삭제

USE MASTER

GO

 

–중지

DISABLE TRIGGER tr_logon_CheckIP ON ALL SERVER

GO

 

–트리거 삭제 

DROP TRIGGER tr_logon_CheckIP ON ALL SERVER

 

Subscribe
Notify of
guest
1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
정환승
정환승
7 months ago

안녕하세요. 해당 글을 참고하여 로그인 트리거를 작성하다가 현재 인증로그인, sqlserver 아이디 로그인이 막혔습니다. 어떻게 복구하는 방법이 있을까요?

1
0
Would love your thoughts, please comment.x
()
x