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을 열어야 하는 경우

애플리케이션 서버, 관리 워크스테이션, 마이그레이션 도구, 보고 서비스 또는 데이터베이스 연결이 필요한 신뢰할 수 있는 네트워크에서만 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 Server용 테스트 포트 1433

일반적인 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과 같은 다른 기본값을 사용합니다.