SQL
SQL Server ポート ガイド: ポート 1433 でのデータベース アクセス
Microsoft SQL Server が TCP 1433 をどのように使用するか、データベース アクセスがいつアクセス可能になる必要があるか、ファイアウォール、ID、暗号化、およびバックアップが重要である理由を理解します。
- 既定ポート
- 1433
- プロトコル
- TCP
- 主な用途
- アプリケーション向けデータベースアクセス
SQL Server ポート 1433 とは何ですか?
Microsoft SQL Server は、データベース クライアント接続のデフォルト リスナーとして TCP ポート 1433 を使用します。アプリケーション、管理ツール、レポート ジョブ、および移行ユーティリティは、SQL Server インスタンスのクエリまたは管理が必要なときにこのポートに接続します。
1433 はデフォルトの SQL Server ポートです
カスタム静的ポート、名前付きインスタンス、プロキシ、またはマネージド データベース エンドポイントが使用されない限り、既定の SQL Server インスタンスは通常、TCP 1433 でリッスンします。
データベース ポートはデフォルトでプライベートにする必要があります
SQL をインターネットに直接公開することはリスクが高くなります。ほとんどのデータベース アクセスは、プライベート ネットワーク、VPN、アプリケーション サブネット、または管理された接続パス内に留める必要があります。
SQL Server 接続の仕組み
SQL クライアントはサーバー リスナーに接続し、プロトコル設定をネゴシエートし、SQL 認証、Windows 認証、Entra ID、またはその他のサポートされている方法で認証して、クエリ、トランザクション、およびメタデータ要求を送信します。
ポートはリスナーに到達できることのみを確認します。実際のデータベース アクセスは、ログイン状態、データベースのアクセス許可、暗号化設定、インスタンス構成、接続文字列、DNS、および複数のレイヤーのファイアウォール ルールにも依存します。
デフォルトのインスタンス、名前付きインスタンス、および動的ポート
デフォルトの SQL Server インスタンスは通常、TCP 1433 で待機します。静的ポートを構成しない限り、名前付きインスタンスは動的ポートを使用することがあります。 SQL Server Browser は、クライアントが名前付きインスタンスを検出するのに役立ちますが、多くの運用環境では、より明確なファイアウォール ポリシーのために静的ポートが好まれます。
接続文字列でサーバー,ポート構文を使用している場合は、正確なポートを確認してください。インスタンス名を使用している場合は、SQL Server 構成マネージャー、エラー ログ、またはサーバー設定を確認して、インスタンスが実際にリッスンしているポートを確認してください。
SQL ポート 1433 を開く必要がある場合
データベース接続を必要とするアプリケーション サーバー、管理ワークステーション、移行ツール、レポート サービス、または信頼できるネットワークからのみ Open SQL アクセスを実行します。非常に具体的な管理および監視の要件がない限り、パブリック アクセスは避けるべきです。
クラウド データベースの場合は、インターネット全体が 1433 に到達することを許可するのではなく、プライベート エンドポイント、VPC または VNet ピアリング、VPN、要塞パス、サービス ネットワーキング、またはプロバイダー ネイティブのファイアウォール ホワイトリストを優先します。
SQL Server を開く前に
TCP 1433 を許可する前に、インスタンスが予想されるインターフェイスとポートでリッスンしていること、暗号化ポリシーがわかっていること、ログインのスコープが設定されていること、最小権限のデータベース ロールが設定されていること、バックアップが信頼できることを確認してください。
ポート チェッカーはネットワークの到達可能性を確認できますが、データベースが安全であることを証明することはできません。 sqlcmd、SQL Server Management Studio、Azure Data Studio、アプリケーションの正常性チェック、サーバー ログを使用して実際の接続文字列をテストします。
Windows、Linux、クラウド データベースで SQL Server を開く方法
Windows Server で、SQL Server インスタンスの TCP/IP を有効にし、必要に応じて静的ポートを設定し、サービスを再起動して、信頼できるソースからのみ Windows Defender ファイアウォールで受信 TCP 1433 を許可します。
Linux SQL Server 展開では、mssql-server が目的のポートでリッスンしていることを確認し、そのポートを firewalld、ufw、nftables、iptables、またはクラウド セキュリティ グループで許可します。管理アクセスをアプリケーション アクセスとは別にしてください。
マネージド SQL サービスの場合は、プロバイダーのファイアウォール ルール、プライベート エンドポイント、および ID 制御を使用します。クラウド データベース エンドポイントを開くことが、単一の VM ポートを公開することと同じであると想定しないでください。プロバイダーレベルのアクセスポリシーも重要です。
- リスナー層: SQL Server は、TCP 1433 または構成された静的ポートでリッスンする必要があります。
- ネットワーク層: ホスト ファイアウォール、クラウド セキュリティ グループ、プライベート エンドポイント、VPN、およびルーティングは、対象のクライアントと一致する必要があります。
- ID レイヤー: ログイン、ロール、MFA 対応管理者パス、パスワード ポリシー、およびサービス アカウントを制御する必要があります。
- データ層: 暗号化、監査、バックアップ、復元テスト、パッチ適用、および最小権限は安全な暴露の一部です。
SQL Server ポート 1433 をテストする方法
クライアントが実行される場所に応じて、データベースのホスト名と TCP 1433 に対する外部ポートまたは内部ポートのチェックから開始します。ポートが開いている場合は、sqlcmd、SSMS、Azure Data Studio、またはアプリケーション接続文字列を使用して実際の接続をテストします。
TLS が必要な場合は、クライアントからの証明書の信頼性と暗号化設定を確認します。次に、サーバー ログでログインの失敗、ファイアウォールの拒否、データベース レベルの権限エラー、接続タイムアウト パターンを確認します。
一般的な SQL 接続のトラブルシューティング ケース
ポート 1433 が閉じている場合は、SQL Server が実行されていない、TCP/IP が無効になっている、インスタンスが別のポートを使用している、またはホスト、クラウド、またはネットワーク ファイアウォールがパスをブロックしている可能性があります。実際の動的ポートがクライアントが期待するものと異なるため、名前付きインスタンスは失敗することがよくあります。
ポートは開いているがログインに失敗する場合は、認証モード、ユーザー名の形式、パスワードの状態、無効なログイン、データベース ユーザー マッピング、権限、暗号化要件、およびサーバー エラー ログを検査します。クエリは接続できるが遅い場合は、ロック、インデックス、CPU、メモリ、I/O、クエリ プランを確認してください。
SQL Server のセキュリティ チェックリスト
可能な限り SQL Server を公共のインターネットから遠ざけてください。ソースを制限し、暗号化を要求し、エンジンにパッチを適用し、未使用のログインを無効にし、最小特権ロールを使用し、資格情報をローテーションし、失敗したログインと特権アクションを監査します。
データベースのバックアップ、復元のテスト、遅いクエリとレプリケーションの健全性の監視、管理アクセスをアプリケーション アクセスから分離します。データベース ポートは機密データへの直接パスであるため、ネットワークへの到達可能性を強力な ID およびデータ制御と組み合わせる必要があります。
よくある質問
SQL Server はどのポートを使用しますか?
Microsoft SQL Server は、デフォルト インスタンスにデフォルトで TCP ポート 1433 を使用します。名前付きインスタンスまたはカスタム構成では、別の静的ポートまたは動的ポートを使用する場合があります。
ポート 1433 を開いても安全ですか?
信頼できるプライベート ネットワークに 1433 を開くのは一般的です。これを公共のインターネットに公開することはリスクが高く、アクセスが厳しく制限され、暗号化され、監視され、正当化されない限り避けるべきです。
ポート 1433 が開いているのに、SQL ログインが失敗するのはなぜですか?
認証または認可が失敗しても、リスナーに到達できる可能性があります。ログイン状態、認証モード、データベース マッピング、アクセス許可、TLS 要件、SQL Server エラー ログを確認します。
すべての SQL データベースはポート 1433 を使用しますか?
いいえ。ポート 1433 は Microsoft SQL Server のデフォルトです。 PostgreSQL 5432 や MySQL 3306 など、他のデータベースは異なるデフォルトを使用します。