SQL Server、MySQLなどのデータベースに対してクライアントツールからアクセスしたいときにODBC接続が使われます。そこで、ODBC接続をしようと思った時に、最初に困るのがDSNって何を選べばいいの?という部分ではないでしょうか。
ちなみにDSNとは、Data Source Nameの略でAccessなどのクライアントツールからODBCの設定を呼び出す時の、設定名称になります。
DSNにはユーザーDSN、システムDSN、ファイルDSNの3種類がありますが、それぞれの特徴について整理しました。
各DSNの説明
- ユーザーDSN
- ログインしているユーザーのみが利用する場合は、こちらを選択します。セキュリティ面を考慮すると、通常はユーザーDSNの設定が良いのではないでしょうか。もちろん、ODBC接続して運用する業務要件によって異なってきますが・・・
- システムDSN
- 対象となるPCの全ユーザーが利用できます。ただし、登録するにはAdministrator権限が必要です。対象となるPCが共有PCで、他のユーザーもこのODBC接続を使う場合は、こちらを選択します。
- ファイルDSN
- セキュリティ面で、最もゆるいのがこのDSNになります。ファイルDSNを作成するとDSNの設定情報がファイルとして作成されるため、同じ設定を他のPCで実施したいときには、作成したdsnファイルをコピーするだけで良いので、とても簡単に複数のPCへの設定が可能です。ただし、コピーしてしまえば、簡単にアクセスできてしまうので、接続対象となるデータベースに対してファイヤーウォールを細かく設定するなどのセキュリティ面での対策を考慮する必要があります。
VS表
セキュリティ面と設定値を展開(部署内、社内など)する時の容易さを簡単に比較してみました。
DSN | セキュリティ | 展開の容易さ |
---|---|---|
ユーザーDSN | ◎ | △ |
システムDSN | ○ | △ |
ファイルDSN | × | ◎ |
システムDSNのセキュリティは、PCにアクセスできる人であれば、本来であれば権限の無い人にも使えてしまう場合があるかな・・・というレベルで、少し下げています。また、展開についてシステムDSNを△にしているのは、特定のPCのみだけなので、PC単位で考えるとユーザーDSNと同じとしても良いと思いました。