ローカルからは接続できるのに、外部から接続できない!っていう方の為のメモ。
Azure上にSQLServerの名前付きインスタンスを立てたらなかなか外から接続できなくって困った。
今回は、名前付きインスタンス特有のところで躓きました。
Azureの設定含め、だいたいここに載ってることで9割足ります。
SQL Server 仮想マシンへの接続 (リソース マネージャー) | Microsoft Docs
https://docs.microsoft.com/ja-jp/azure/virtual-machines/windows/sql/virtual-machines-windows-sql-connect
ざっと書いてあることを箇条書きにすると
- (Azure設定)セキュリティグループで1433ポートのTCPの許可
- (Azure設定)パブリック IP アドレスの DNS ラベルの構成
- (OS設定)FireWallの設定で1433ポートの許可
- (DB設定) SQL Server 構成マネージャーでTCP/IPの許可
- (DB設定)混合モード認証の許可
こんな感じです。疲れた。多い。
通常のデフォルトインスタンスならこれでOKなはず。
ただし、デフォルトのDBインスタンスが1433ポートでリッスンしているのに対し、
名前付きインスタンスは動的ポートを使う設定になっており、
上記を1433で設定しても名前付きインスタンスにはつながらない
先ほど有効化したTCP/IPを右クリック⇒プロパティ
名前付きインスタンスのポートが動的(Dynamic)になってるので静的なポートを指定しましょう。
ここではデフォルトインスタンスは停止しているので、名前付きインスタンスを1433に設定しています。
最後にDBインスタンスの再起動をお忘れなく(設定が反映されない)
以上です。