MS-SQL Server Connection
SQL Server의 포트 리스너 : "listener" 역할을 하며, 클라이언트 애플리케이션이 이 포트를 통해 SQL Server 인스턴스에 연결 요청을 보냅니다.
SQL Server는 네트워크 인터페이스인 SQL Server Network Interface(SNI)를 사용하여 클라이언트 요청을 처리합니다. SNI는 네트워크 통신을 처리하고, 클라이언트와 서버 간의 연결을 설정합니다.
SQL Server 프로세스 : sqlservr.exe라는 프로세스로 실행됩니다.
데이터베이스 요청을 처리하고, 결과를 반환합니다.
클라이언트와의 세션을 관리합니다.
[ 연결 처리 과정 ]
1. 클라이언트 요청: 클라이언트 애플리케이션이 SQL Server 인스턴스의 포트로 연결 요청을 보냅니다.
2. 포트 리스닝: SQL Server는 네트워크 포트에서 들어오는 연결 요청을 수신합니다. 이 포트는 SQL Server 설정에 따라 고정되어 있거나 동적으로 할당될 수 있습니다.
3. SQL Server Browser 서비스: 클라이언트가 SQL Server 인스턴스의 포트를 모르는 경우, SQL Server Browser 서비스가 연결을 돕습니다.
4. SNI 처리: SNI는 네트워크 요청을 받아 SQL Server 프로세스에 전달합니다.
5. 세션 관리: sqlservr.exe 프로세스는 연결을 설정하고, 클라이언트 요청을 처리합니다. 인증과 권한 부여가 완료되면, SQL Server는 쿼리를 실행하고 결과를 클라이언트에게 반환합니다.
6. 연결 종료: 작업이 완료되면, 클라이언트와 SQL Server 간의 연결이 종료됩니다.
PostgreSQL Connection
1. PostgreSQL 서버는 postgres(postmaster)라는 메인 프로세스로 실행됩니다. 이 프로세스는 네트워크 포트에서 클라이언트 연결을 수신하고, 요청을 처리하며, 데이터베이스 작업을 수행합니다.
2. PostgreSQL 서버는 지정된 네트워크 포트에서 클라이언트 요청을 수신합니다. 기본적으로 PostgreSQL은 TCP/IP 포트 5432를 사용하지만, postgresql.conf 설정 파일을 통해 다른 포트를 지정할 수 있습니다.
3. PostgreSQL 서버는 TCP/IP 포트에서 연결 요청을 리스닝하며, 클라이언트가 연결을 시도할 때 이 요청을 수락하여 새로운 세션을 생성합니다.
PostgreSQL의 pg_hba.conf (Host-Based Authentication) 파일은 클라이언트의 인증 요청을 처리하는 방식을 설정합니다.
pg_hba.conf (Host-Based Authentication) 파일은 클라이언트의 IP 주소, 사용자, 데이터베이스, 인증 방법 등을 정의하여, PostgreSQL 서버가 연결 요청을 승인하거나 거부할 수 있도록 합니다.
4. 연결이 성립된 후, PostgreSQL은 클라이언트와의 세션을 관리하기 위해 backend 프로세스(postgres)를 생성합니다. 각 클라이언트 세션에 대해 별도의 backend 프로세스가 생성되어 클라이언트의 쿼리를 처리하고 결과를 반환합니다.
MariaDB Connection
MariaDB 서버는 mysqld라는 이름의 메인 프로세스로 실행됩니다. 이 프로세스는 네트워크 포트에서 클라이언트 연결 요청을 수신하고 처리합니다
mysqld 프로세스는 클라이언트의 연결 요청을 리스닝하고, 수신한 요청을 처리하기 위해 새로운 세션을 생성합니다. 각 클라이언트 세션은 mysqld 프로세스의 서브 프로세스 또는 스레드로 처리됩니다.
MariaDB는 클라이언트와 서버 간의 통신을 처리하기 위해 자체 프로토콜을 사용합니다. 이 프로토콜은 클라이언트의 연결 요청을 수신하고, 인증 및 쿼리 처리를 수행합니다.
MariaDB는 클라이언트의 인증 요청을 처리하기 위해 user 테이블과 권한 시스템을 사용합니다. my.cnf 설정 파일의 bind-address, skip-networking, max_connections 등의 설정을 통해 네트워크 연결을 제어할 수 있습니다.
참고
'DB & SQL' 카테고리의 다른 글
SQL Server, PostgreSQL, MariaDB의 연결 관리 방식 (0) | 2024.08.14 |
---|---|
[oracle] MATERIALIZED VIEW (0) | 2024.08.13 |
오라클 사용자를 위한 DB2 가이드 (0) | 2024.02.09 |
MongoDB 완벽 가이드 (0) | 2024.01.30 |
MariaDB (0) | 2024.01.11 |