데이터베이스 서버 접속 제한

설명

데이터베이스 서버에 접속하는 브로커 및 CSQL 인터프리터를 제한하려면 cubrid.confaccess_ip_control 파라미터 값을 yes로 설정하고, access_ip_control_file 파라미터 값에 접속을 허용하는 IP 목록을 작성한 파일 경로를 입력한다. 파일 경로는 절대 경로로 입력하며, 상대 경로로 입력하면 Linux에서는 $CUBRID/conf 이하, Windows에서는 %CUBRID%\conf 이하의 위치에서 파일을 찾는다.

cubrid.conf 파일에는 다음과 같이 설정한다.

# cubrid.conf

access_ip_control=yes

access_ip_control_file="/home1/cubrid1/CUBRID/db.access"

access_ip_control_file 파일의 작성 형식은 다음과 같다.

[@<db_name>]

<ip_addr>

여러 개의 데이터베이스에 대해 설정하기 위해 [@<db_name>]과 <ip_addr>을 추가로 지정할 수 있다.

access_ip_control이 yes인 상태에서 access_ip_control_file이 설정되지 않으면, 서버는 모든 IP를 차단하고 localhost만 접속을 허용한다. 서버 구동 시 잘못된 형식으로 인해 access_ip_control_file 분석에 실패하면 서버는 구동되지 않는다.

다음은 access_ip_control_file의 한 예이다.

[@dbname1]

10.10.10.10

10.156.*

 

[@dbname2]

*

 

[@dbname3]

192.168.1.15

위의 예에서 dbname1 데이터베이스는 10.10.10.10이거나 10.156으로 시작하는 IP의 접속을 허용한다. dbname2 데이터베이스는 모든 IP의 접속을 허용한다. dbname3 데이터베이스는 192.168.1.15인 IP의 접속을 허용한다.

이미 구동되어 있는 데이터베이스에 대해서는 다음 명령어를 통해 설정 파일을 다시 적용하거나, 현재 적용된 상태를 확인할 수 있다.

구문

access_ip_control_file의 내용을 변경하고 이를 서버에 적용하려면 다음 명령어를 사용한다.

cubrid server acl reload <database_name>

현재 구동 중인 서버의 IP 설정 내용을 출력하려면 다음 명령어를 사용한다.

cubrid server acl status <database_name>

데이터베이스 서버 로그

허용되지 않는 IP에서 접근하면 서버 에러 로그 파일에 다음과 같은 서버 에러 로그가 남는다.

Time: 10/29/10 17:32:42.360 - ERROR *** ERROR CODE = -1022, Tran = 0, CLIENT = (unknown):(unknown)(-1), EID = 2

Address(10.24.18.66) is not authorized.

참고 브로커에서의 접속 제한을 위해서는 브로커 접속 제한을 참고한다.