Navicat(Flatpak版)でSQL Serverへの接続を確立しようとすると、「SQL Server ODBCドライバーが必要です」というエラーメッセージが表示されます。どうすればよいでしょうか?
更新日時:
対象OS:Linux
対象Navicat製品:Navicat for SQL Server、Navicat Premium (Flatpak版)
Microsoft SQL Serverインスタンスへの直接接続を確立するためには、Microsoft ODBC Driver for SQL Server (バージョン 17または18) が必要です。
なぜこのエラーが表示されるのですか?
Flatpak経由で配布されるアプリケーションは、ホストシステムを保護するために、安全なコンテナサンドボックス内で実行されます。
デフォルトでは、Flatpakのサンドボックスは、お使いのホストシステムのライブラリパス(/opt/microsoftや/usr/lib64など)から完全に隔離されています。パッケージマネージャー(aptやdnf)を使用してホストコンピュータにMicrosoft ODBC Driverをインストールすると、ドライバーはこれらの制限されたパスに配置されるため、サンドボックス化されたアプリケーションからは全く認識されなくなります。
Flatpakアプリケーションが接続できるようにするためには、弊社の設定スクリプトを実行する必要があります。このスクリプトは、ドライバーファイルをホーム設定パーティション内のサンドボックスからアクセス可能な専用ディレクトリ($HOME/.config/navicat/ODBC/mssql)にコピーし、システム設定にFlatpak用の専用ドライバーセクションを登録します。
手順1:ホストシステムへのMicrosoft ODBCドライバーのインストール
コンフィギュレーターを実行する前に、ホストのLinuxオペレーティングシステムに公式のMicrosoft SQL Server ODBCドライバーをインストールする必要があります。
Ubuntu / Debianの場合:
sudo su
curl [https://packages.microsoft.com/keys/microsoft.asc](https://packages.microsoft.com/keys/microsoft.asc) | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
# Add the correct repository for your Ubuntu version (e.g., 22.04)
curl [https://packages.microsoft.com/config/ubuntu/22.04/prod.list](https://packages.microsoft.com/config/ubuntu/22.04/prod.list) | sudo tee /etc/apt/sources.list.d/mssql-release.list
sudo apt-get update
ACCEPT_EULA=Y sudo apt-get install -y msodbcsql18 mssql-tools18 unixodbc-devRHEL / Fedora / CentOSの場合:
sudo su
# Register Microsoft's RHEL repository
curl [https://packages.microsoft.com/config/rhel/8/prod.repo](https://packages.microsoft.com/config/rhel/8/prod.repo) | sudo tee /etc/yum.repos.d/mssql-release.repo
# Clear utf16 conflicts if any exist
sudo yum remove unixODBC-utf16 unixODBC-utf16-devel
ACCEPT_EULA=Y sudo yum install -y msodbcsql18 mssql-tools18 unixODBC-devel
手順2: Flatpakサンドボックスドライバーブリッジの設定
ドライバーがホストにインストールされたら、Flatpakアプリが安全に読み込めるように、以下の設定スクリプトを使用してドライバー設定を複製およびマッピングしてください。
1. スクリプトをダウンロードする
以下のリンクから、Microsoft ODBC設定スクリプトをダウンロードします: https://dn.navicat.com/drivers/configure_linux_mssql_odbc.sh
2. スクリプトを実行可能にする
ターミナルウィンドウを開き、シェルファイルを保存したフォルダに移動して、実行権限を付与します:
chmod +x configure_linux_mssql_odbc.sh3. スクリプトをSudoで実行する
スクリプトを実行します。システム全体に適用される/etc/odbcinst.iniファイルを安全に更新するために、rootパスワードの入力が求められます:
sudo ./configure_linux_mssql_odbc.sh
手順3: 接続の確認
Navicatを再起動し、接続をテストします。