ODBC 딕셔너리 소스
ODBC 드라이버가 있는 모든 데이터베이스에 이 방법을 사용해 연결할 수 있습니다.
설정 예시는 다음과 같습니다:
- DDL
- Configuration file
설정 필드는 다음과 같습니다:
| Setting | Description |
|---|---|
db | 데이터베이스 이름입니다. 데이터베이스 이름이 <connection_string> 매개변수에 설정되어 있는 경우 생략합니다. |
table | 테이블 이름과, 존재한다면 스키마 이름입니다. |
connection_string | 연결 문자열입니다. |
invalidate_query | 딕셔너리 상태를 확인하는 쿼리입니다. 선택 사항입니다. 자세한 내용은 LIFETIME을 사용한 딕셔너리 데이터 새로 고침 섹션을 참조하십시오. |
background_reconnect | 연결이 실패할 경우 백그라운드에서 레플리카에 다시 연결합니다. 선택 사항입니다. |
query | 사용자 정의 쿼리입니다. 선택 사항입니다. |
table 필드와 query 필드는 동시에 사용할 수 없습니다. 또한 table 또는 query 필드 중 하나는 반드시 선언해야 합니다.
ClickHouse는 ODBC 드라이버에서 따옴표(quoting) 기호 설정을 전달받아 드라이버로 보내는 쿼리에서 모든 설정 값을 따옴표로 감싸므로, 데이터베이스에 정의된 테이블 이름의 대소문자(case)에 맞게 테이블 이름을 지정해야 합니다.
Oracle을 사용할 때 인코딩 문제를 겪는 경우, 관련 FAQ 항목을 참조하십시오.
ODBC 딕셔너리 기능의 알려진 취약점
ODBC 드라이버를 통해 데이터베이스에 연결할 때 연결 매개변수 Servername 을(를) 다른 값으로 바꿀 수 있습니다. 이 경우 odbc.ini 의 USERNAME 및 PASSWORD 값이 원격 서버로 전송되어 유출될 수 있습니다.
안전하지 않은 사용 예
PostgreSQL용 unixODBC를 구성해 보겠습니다. /etc/odbc.ini 의 내용은 다음과 같습니다:
그런 다음 아래와 같은 쿼리를 실행하면
ODBC 드라이버는 odbc.ini에 설정된 USERNAME과 PASSWORD 값을 some-server.com으로 전송합니다.
PostgreSQL 연결 예제
Ubuntu OS.
PostgreSQL용 unixODBC 및 ODBC 드라이버를 설치합니다:
/etc/odbc.ini (또는 ClickHouse를 실행하는 사용자로 로그인한 경우 ~/.odbc.ini) 구성하기:
ClickHouse에서의 딕셔너리 구성 예:
- DDL
- 구성 파일
드라이버 라이브러리가 위치한 전체 경로(DRIVER=/usr/local/lib/psqlodbcw.so)를 지정하도록 odbc.ini 파일을 수정해야 할 수 있습니다.
MS SQL Server 연결 예제
Ubuntu OS 기준입니다.
MS SQL Server에 연결하기 위한 ODBC 드라이버 설치:
드라이버 설정:
비고:
- 특정 SQL Server 버전에서 지원되는 최소 TDS 버전을 확인하려면 제품 설명서를 참조하거나 MS-TDS Product Behavior를 확인하십시오.
ClickHouse에서 딕셔너리를 구성하는 예:
- DDL
- Configuration file