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」と指定します。

facebook slideshare rubygems github qiita