메뉴 닫기

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
정환승
정환승
10 months ago

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

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