Skip to content

조회 수 22210 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

SQL 2005 있는 DDL 트리거를 이용하여 데이터베이스에 접근하는 특정 IP 막거나, 또는 특정 IP만을 허용하도록 하는 기능을 구현하는 예입니다.

 

IP 차단이나 허용 등은 OS 수준에서 제어하는 것이 바람직하지만, 경우에 따라서는 데이터베이스 수준에서 이를 제어해야 경우도 있습니다.


다음과 같은 경우에 유용합니다.

 

?  서버의 접속만 허용하고 다른 서버 또는 사용자 등의 접속을 차단하고자

?  부하를 많이 발생시키는 사용자의 접근을 차단하고자

?  지정된 PC에서만 접근을 허용하고자

 

 

아래 설명할 방식은 특정 IP 대해서만 접근을 허용하는 방식입니다. 이를 이용해서 특정 IP 접근을 막는 것도 간단히 활용하실 있을 것입니다.

 

--관리용 데이터베이스 생성

CREATE DATABASE DBAWork

GO

 

USE DBAWork

GO

 

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

CREATE TABLE dbo.ValidIP (

  IP NVARCHAR(15),

  CONSTRAINT PK_ValidIP PRIMARY KEY CLUSTERED (IP)

);

GO

 

INSERT INTO dbo.ValidIP (IP) VALUES ('100.20.2.22');

GO

 

 

USE MASTER

GO

--DDL Trigger 생성

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 DBAWork.dbo.ValidIP WHERE IP = @IP)

     ROLLBACK;

  END;

END;

GO

 

 

만약 허용되지 않은 곳에서 해당 DB 서버를 연결하면 다음과 같이 연결이 제한됩니다.

1.jpg
 

 

DDL 트리거를 비활성화 하거나 제거하려면 다음 명령을 이용하면 됩니다.

USE MASTER

GO

 

--Disable

DISABLE TRIGGER tr_logon_CheckIP ON ALL SERVER

GO

 

--Drop Trigger

DROP TRIGGER tr_logon_CheckIP ON ALL SERVER

Who's l2zeo

profile

I see no changes, wake up in the morning and I ask myself

Is life worth living should I blast myself

Things would never be the same.

Atachment
첨부 '1'

  1. No Image 16Jan
    by ADMINPLAY
    2012/01/16 by ADMINPLAY
    Views 14549 

    SET LOCK_TIMEOUT

  2. sa계정 패스워드변경하기

  3. No Image 13Apr
    by ADMINPLAY
    2009/04/13 by ADMINPLAY
    Views 16783 

    php에서 mssql 연동방법(총정리)

  4. No Image 14Dec
    by ADMIN
    2008/12/14 by ADMIN
    Views 8786 

    mysql 대량 쿼리 보내기

  5. No Image 26Nov
    by ADMINPLAY
    2009/11/26 by ADMINPLAY
    Views 9323 

    MsSQL에서 소유자(mssql2000 => mssql2005으로 복원)

  6. No Image 04Jun
    by ADMINPLAY
    2009/06/04 by ADMINPLAY
    Views 10424 

    mssql2005 원격접속 허용 - 노출 영역 구성

  7. No Image 10Nov
    by ADMINPLAY
    2009/11/10 by ADMINPLAY
    Views 7519 

    MSSQL 파일사이즈 줄이기

  8. No Image 15May
    by ADMINPLAY
    2009/05/15 by ADMINPLAY
    Views 11520 

    MSSQL 트랜잭션로그삭제

  9. No Image 19Nov
    by ADMINPLAY
    2009/11/19 by ADMINPLAY
    Views 9663 

    MSSQL 클러스터

  10. No Image 26Nov
    by ADMINPLAY
    2009/11/26 by ADMINPLAY
    Views 9163 

    MSSQL 접속 방법

  11. No Image 24Feb
    by l2zeo
    2010/02/24 by l2zeo
    Views 23864 

    MSSQL 버전별 최대 용량 비교표

  12. No Image 26Nov
    by ADMINPLAY
    2009/11/26 by ADMINPLAY
    Views 16335 

    MSSQL 2005 접속 클라이언트(mssql server management Studio Express)

  13. No Image 26Nov
    by ADMINPLAY
    2009/11/26 by ADMINPLAY
    Views 16254 

    MS-SQL 클라이언트 설치 방법

  14. No Image 26Nov
    by ADMINPLAY
    2009/11/26 by ADMINPLAY
    Views 9850 

    Ms-Sql 백업 format옵션

  15. No Image 20Sep
    by ADMINPLAY
    2014/09/20 by ADMINPLAY
    Views 4971 

    MicroSoft SQL Server 2008 1433 port 원격(외부)접속 허용하기

  16. No Image 13Apr
    by ADMINPLAY
    2009/04/13 by ADMINPLAY
    Views 7493 

    Firehose 모드에서는 트랜젝션을 시작할수 없습니다

  17. No Image 03Jun
    by ADMINPLAY
    2010/06/03 by ADMINPLAY
    Views 23013 

    Fatal error: Call to undefined function: mssql_connect()

  18. No Image 29May
    by l2zeo
    2010/05/29 by l2zeo
    Views 21798 

    DBCC SHRINKFILE 트랜잭션 로그파일 축소

  19. DB 서버에 특정 IP 접근 차단 방법

Board Pagination Prev 1 2 Next
/ 2

Copyright ADMINPLAY corp. All rights reserved.

abcXYZ, 세종대왕,1234

abcXYZ, 세종대왕,1234