マイクロソフト様の無料のSQlserverを使わせてもらう機会が増えてきましたが、何回やっても接続で戸惑い忘れてしまうので備忘録として記載しておきます。
ド初心者なので、あくまでも自分用としての表現になり説明が足りませんことをお許しくださいませ。
さて、
ポイント
今回もSQLserverExpress2017をサーバーにインストールして、とりあえず、別のパソコンからMSSMS(Microsoft SQL Server Management Studio)を使って接続しようとして苦労しました。
いつも忘れてしまうのですよね。
ちなみに、MSSMSというソフトも無料でマイクロソフト様から配布されていますありがたいSQLserver管理ソフトになります。
つまり、ソフトで別パソコンから接続できれば、ほぼネットワーク上でのSQLserverの設定はできていると思って大丈夫なのです。
注意ポイント
SQlserverをインストールしてそのまま接続しようとしても外部のパソコンからは最初接続できません。
まずやる事としては、
(1)SQlserverをインストールしたサーバーにもMSSMSをインストールして、Windowsモードで接続できることを確認することです。
これで接続できるなら、ちゃんとサーバーにはインストールされてSQlserverも起動していることが確認できます。
次にやることは、
(2)サーバーのファイヤーウォールの設定です。
SQLserverは、TCP1433とUDP1434を使うので、そのポートを開きます。
また、プログラムを許可しないと接続できない場合もあるので、その場合は、プログラムも許可しておくことが必要です。
%ProgramFiles%\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Binn\sqlservr.exe
注意ポイント
プログラムを許可せずに何度も接続できないことがありました。
(3)接続するアカウントの作成とサーバーのログインモードを混合モードに変更する。
外部から接続するためには、その接続アカウントを作成しなければなりません。
サーバー上のMSSMSを使ってセキュリティ>>ログインと進み、アカウントを作成します。
また、MSSMSからサーバー自体の接続モードを、【Windows認証モード】から、
ポイント
【SQLserver認証モードとWindows認証モード】にチェックを変更
します。
これは、SQLserverをインストールするときに選択する画面があるようなのですが、私は適当にWindows認証モードでインストールしてしまったので、あとから変更が必要でした。
認証モードが違うと下記のようなエラーがでました。
【SQL Server 認証モードとWindows 認証モード への変更】
(4)SQL Server Browserサービスの起動。
これが良く忘れてしまいます。このサービスが起動してないと、なぜか接続できません。サーバー自体が他のパソコンから見つけられないようです。また、このサービスは、SQLserver構成マネージャーというところにあるのですが、起動することができません。
どうするのかといえば、Windowsのコントロールパネルから、サービスの所に行き、サービスからSQL Server Browserを見つけて、【無効】になっているのを【手動】に変更します。
そうすることで、SQLserver構成マネージャーから【開始】ボタンが有効にすることが可能になります。・・・めんどくさい!!
参考
このサービスは、「192.168.0.100¥SQLEXPRESS」などのようにサーバーの固定IPを使う場合などは、停止させておいても大丈夫のようです。
(5)SQLserver構成マネージャーから、SQLserverネットワークの構成>>SQLEXPRESSへいくと、【TCP/IP】やら【名前付きパイプ】やら【共有メモリ】なるものがありますが、無効になっているかとおもいますので、有効に変更します。
なんで最初から有効になっていないのかは推測ですが、初期はスタンドアロン(1台構成)での使用用途になっている様に思われます。つまり、ネットワークで複数台のクライアントで使用するには、この項目を有効にしなければならないってことじゃないかと思います。
だいたい、上記のことまでやれば、外部のパソコンのMSSMSから接続が可能になるかと思います。
接続されると、下記のような画面にログインできる。
接続ができれば、あとは、端末とSQLserverをODBC接続すれOKです。この設定をいつも忘れてしまって、調べながらやると2時間くらい費やしてしまいます。これで次回からは大丈夫だとおもいます。