SQL Serverに接続するときのポート指定方法
状況
- ネットワーク的に、手元のPCから直接アクセスできない場所にSQL Serverがある場合に、コマンドを入れたいときはどうしますか。
- TELNETサービスを起動してログイン+osql.exeを使う
- リモートデスクトップで接続してMicrosoft SQL Server Management StudioなどのGUIツールを使う。
- ぐらいで対応していましたが、SQL Serverと同じLAN上にLinuxマシンがあったので、SSH Forwardしてみました。
SSH forwardを設定
- SSH forwardの方法は、Teraterm のSSH転送機能を使うを参照。
- SQL Serverのポートは(大抵)TCP 1433です。転送するローカルポートは今回11433としました。
- ここで「Local ports accept connections from other hosts」と「Accept connections from other hosts」のチェックボックスをONにしておきます。そうしないと、下記エラーとなり接続できませんでした。
Host with IP number 192.168.999.999 tried to connect to forwarded local port 11433.
This could be some kind of hostile attack.
- とりあえず、手元PCから telnet localhost 11433 として、接続できることを確認します。
- できない場合は、SQL Serverがネットワークからの接続を許可していないとか、SSH forwardの設定が間違っているか・・・
手元PCから接続(Microsoft SQL Server Management Studio)
- サーバー名に「localhost,11433」と指定して、認証・ログイン・パスワードを入力、接続します。(ポート指定はカンマで区切る)
- 試してませんが、Express Editionや複数インスタンスの場合は「localhost\SQLEXPRESS,11433」になると思われます。
ODBC DSNを作成する
- ドライバに「SQL Native Client」を選択し、サーバーに「localhost,11433」と指定します。