ODBC Dictionary ソース
ODBC ドライバーを持つ任意のデータベースには、この方法を使って接続できます。
設定例:
- DDL
- 設定ファイル
設定フィールド:
| Setting | Description |
|---|---|
db | データベース名。データベース名が <connection_string> のパラメータで指定されている場合は省略します。 |
table | テーブル名と(存在する場合は)スキーマ名。 |
connection_string | 接続文字列。 |
invalidate_query | Dictionary のステータスを確認するためのクエリ。任意。詳細は LIFETIME を使用した Dictionary データの更新 を参照してください。 |
background_reconnect | 接続エラー時にバックグラウンドでレプリカへ再接続します。任意。 |
query | カスタムクエリ。任意。 |
table と query フィールドは同時に使用できません。また、table または query のいずれか一方は必ず指定する必要があります。
ClickHouse は ODBC ドライバーからクオート記号を受け取り、ドライバーへのクエリ内ですべての設定値をクオートするため、テーブル名はデータベース内のテーブル名の大文字小文字の表記に正確に合わせて設定する必要があります。
Oracle を使用する際にエンコーディングに問題がある場合は、対応する FAQ の項目を参照してください。
ODBC Dictionary 機能の既知の脆弱性
ODBC ドライバー経由でデータベースに接続する際、接続パラメータ Servername をすり替えられる可能性があります。この場合、odbc.ini に記載された USERNAME と PASSWORD の値がリモートサーバーに送信され、漏えいするおそれがあります。
安全でない使用例
PostgreSQL 向けに unixODBC を構成します。/etc/odbc.ini の内容は次のとおりです。
その後、次のようなクエリを発行すると
ODBC ドライバーは、odbc.ini に設定された USERNAME と PASSWORD の値を some-server.com に送信します。
PostgreSQL への接続例
環境は Ubuntu OS です。
unixODBC および PostgreSQL 用 ODBC ドライバーをインストールします:
/etc/odbc.ini(または、ClickHouse を実行するユーザーでサインインしている場合は ~/.odbc.ini)を設定します。
ClickHouse における Dictionary の設定例:
- 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 で Dictionary を設定する:
- DDL
- Configuration file