SQL programming 
특정 IP로부터의 SQL 서버 접근만 허용

SQL 서버의 보안 차원에서 특정 IP 주소로부터 접근해 오는 클라이언트만 받아들이고, 나머지로부터의 접근을 차단하는 기능을 로그온 트리거를 써서 구현할 수 있다. 즉, 클라이언트 사용자가 로그인할 때, 해당 클라이언트의 IP 주소를 확인해서 만약 지정된 IP 주소가 아니고 외부 IP이면 로그인을 취소하는 방식이다. 물론 이러한 방식(Whitelist)과 반대로 특정 IP만 차단하는 기능(Blacklist)도 동일하게 LOGON TRIGGER를 사용하여 구현할 수 있다.

예제






EVENTDATA() 함수는 트리거에서 사용하는 함수로서 해당 트리거 이벤트에서 발생하는 데이타를 XML형태로 제공해준다. 만약 EVENTDATA()를 DDL 트리거나 LOGON 트리거 밖에서 호출하면 NULL을 리턴한다. EVENTDATA()는 트리거의 종류에 따라서 다른 XML 내용을 리턴하는데, 위의 LOGON 트리거의 경우 EVENTDATA()는 다음과 같은 XML을 리턴한다.

  <EVENT_INSTANCE>
  <EventType>LOGON</EventType>
  <PostTime>2013-11-16T18:06:43.133</PostTime>
  <SPID>55</SPID>
  <ServerName>YPC</ServerName>
  <LoginName>YPC\Alx</LoginName>
  <LoginType>Windows (NT) Login</LoginType>
  <SID>AQUAAAAAAAUVAAAAkX84EWM8XjHCPpkf6AMAAA==</SID>
  <ClientHost>192.168.1.8</ClientHost>
  <IsPooled>0</IsPooled>
  </EVENT_INSTANCE>
    

리턴된 XML에서 EventType, 서버 및 로그인 정보, 클라이언트 IP 등을 구할 수 있다.

본 웹사이트는 광고를 포함하고 있습니다. 광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.