이 문서에서는 Visual Studio Code 대한 PostgreSQL 확장의 고급 연결 기능에 대해 설명합니다. 기존 연결 문자열 다시 사용하거나, 더 엄격한 TLS 유효성 검사를 위해 인증서 파일을 제공하거나, SSH 터널을 사용하여 요새 호스트를 통해 연결해야 하는 경우 이러한 옵션을 사용합니다.
Tip
표준 인증, SSL 모드 선택, 서버 그룹 및 저장된 연결은 연결 및 ID를 참조하세요.
연결 문자열 입력 모드 사용
기존 연결 정의를 붙여 넣으려면 연결 대화 상자에서(연결 방법: 아래) 연결 문자열 탭을 선택합니다. 확장은 문자열을 자동으로 구문 분석하고 연결 필드를 채웁니다.
이 페이지에서는 2열 레이아웃을 사용합니다.
- 왼쪽 열: 문자열을 붙여넣을 때 연결 문자열 이라는 레이블이 지정된 텍스트 영역입니다. 텍스트 영역 아래의 힌트는 연결 문자열 암호를 생략하세요.
- 오른쪽 열: 구문 분석된 서버 이름, 사용자 이름 및 데이터베이스 이름 값이 추출될 때 표시되는 읽기 전용 연결 세부 정보 패널입니다.
구문 분석은 입력하거나 붙여넣을 때 라이브로 수행됩니다. 파서가 누락된 서버 또는 사용자 값을 검색하면 유효성 검사 오류가 텍스트 영역 위에 나타납니다.
지원되는 형식
확장은 9개의 연결 문자열 형식을 인식합니다.
| 포맷 | 접두사 또는 트리거 | 예시 |
|---|---|---|
| PostgreSQL URI |
postgres:// 또는 postgresql:// |
postgresql://user:password@host:5432/dbname?sslmode=require |
| JDBC | jdbc:postgresql:// |
jdbc:postgresql://host:5432/dbname |
| 세미콜론으로 구분(key=value) |
;를 포함하고 있습니다. |
host=localhost;port=5432;dbname=mydb;user=postgres;password=secret |
psql 명령줄 |
psql |
psql -h host -p 5432 -U user -d dbname |
| 환경 변수 내보내기 | export |
export PGHOST=localhost다음에 , PGPORT, PGUSERPGDATABASEPGPASSWORD |
| Node.js | new Client |
new Client({ host: "localhost", port: 5432, user: "postgres", database: "mydb" }) |
| Python(psycopg2) | psycopg2.connect |
psycopg2.connect(user="postgres", password="<your-password>", host="localhost", port=5432, database="mydb") |
| PHP | pg_connect |
pg_connect("host=localhost port=5432 dbname=mydb user=postgres") |
| Ruby | PG::Connection.new |
PG::Connection.new(host: "localhost", port: "5432", user: "postgres", database: "mydb") |
파서는 모든 형식에서 호스트, 사용자, 포트, 데이터베이스 및 암호를 추출합니다. 대화 상자에 암호 필드가 이미 채워진 경우 파서는 기존 값을 유지합니다.
메모
파싱한 후에도 고급 패널을 열어 연결 문자열에 포함되지 않는 설정(예: SSH 터널 또는 연결별 AI 액세스 모드(Copilot access mode는 Visual Studio Code에서, AI access mode는 Cursor에서))을 구성할 수 있습니다.
인증서 파일 구성
환경에 상호 TLS 또는 명시적 인증 기관 유효성 검사가 필요한 경우 고급 연결 설정 서랍의 SSL 아코디언 섹션에서 인증서 파일 설정을 사용합니다.
SSL 루트 인증서 모드
SSL 루트 인증서 모드 드롭다운 목록은 확장에서 루트 CA 인증서를 제공하는 방법을 제어합니다. 다음 값 중 하나를 선택합니다.
| 모드 | 작동 방식 |
|---|---|
| 없음 | 루트 인증서가 사용되지 않습니다. 확장은 서버 인증서 체인을 확인하지 않습니다. |
| System | 확장은 운영 체제의 신뢰할 수 있는 인증서 저장소를 사용합니다. 이 모드에는 Verify-Full SSL 모드가 필요합니다. 확장은 이를 자동으로 적용합니다. |
| 사용자 지정 파일 | SSL 루트 인증서 파일 이름이 레이블이 지정된 텍스트 필드가 나타납니다. PEM으로 인코딩된 루트 CA 인증서 파일의 경로를 입력합니다. |
Important
시스템을 선택하면 SSL 모드가 자동으로 Verify-Full로 설정됩니다. 시스템이 활성화된 동안 SSL 모드를 다른 값으로 변경하면 " 시스템 인증서 저장소를 사용할 때Verify-Full SSL 모드가 필요합니다."라는 유효성 검사 오류가 나타납니다.
클라이언트 인증서 필드
SSL 섹션 내에서 이러한 필드에 경로를 제공하여 상호 TLS를 구성합니다.
| 필드 이름 | 재산 | Description |
|---|---|---|
| SSL 인증서 파일 이름 | sslcert |
클라이언트 인증서 파일의 경로입니다. |
| SSL 키 파일 이름 | sslkey |
클라이언트의 프라이빗 키 파일 경로입니다. |
| SSL 루트 인증서 파일 이름 | sslrootcert |
루트 CA 인증서의 경로입니다( SSL 루트 인증서 모드 가 사용자 지정 파일인 경우에만 표시됨). |
| SSL CRL 파일 이름 | sslcrl |
인증서 해지 목록 파일의 경로입니다. |
| SSL 압축 사용 | sslcompression |
SSL 연결에서 압축을 사용하도록 설정합니다. |
Tip
Verify-CA 및 Verify-Full 모드의 경우 확장에서 서버 인증서의 유효성을 검사할 수 있도록 항상 루트 인증서를 구성합니다. 시스템 모드를 사용하여 파일 경로를 지정하지 않고 운영 체제의 신뢰할 수 있는 CA 저장소를 사용합니다.
SSH 터널을 통해 연결
SSH 터널링에서는 암호화된 SSH 채널을 통해 PostgreSQL 연결을 라우팅합니다. 워크스테이션에서 데이터베이스에 직접 연결할 수 없는 경우 이 방법을 사용합니다. 예를 들어 서버가 배스천 호스트 뒤에 있는 프라이빗 네트워크에 있는 경우입니다.
터널 사용
- 연결 대화 상자를 열고 고급 을 선택하여 고급 연결 설정 서랍을 엽니다.
- SSH 터널 아코디언 섹션을 확장합니다.
- SSH 터널링 사용 토글을 확인합니다. SSH 연결 필드가 나타납니다.
SSH 터널 필드
| 필드 이름 | Description |
|---|---|
| host | SSH 서버(요새 호스트)의 호스트 이름 또는 IP 주소입니다. |
| 항구 | SSH 서버 포트 번호(기본값: 22). |
| username | SSH 서버를 사용하여 인증할 사용자 이름입니다. |
| 인증 | SSH 인증 방법입니다. 암호, ID 파일 또는 SSH 에이전트를 선택합니다. |
나머지 필드는 선택한 인증 방법에 따라 변경됩니다.
| 인증 방법 | 표시된 추가 필드 |
|---|---|
| 암호 | password/passphrase: SSH 암호를 입력합니다. 암호/암호문구 저장 확인란을 선택하여 자격 증명이 유지되도록 합니다. |
| ID 파일 |
ID 파일: SSH 프라이빗 키의 전체 경로(예: ~/.ssh/id_ed25519)를 입력합니다.
password/passphrase: 프라이빗 키가 암호화된 경우 키 암호를 입력합니다.
암호/암호 저장 확인란 |
| SSH 에이전트 | 추가 필드가 없습니다. 확장은 시스템의 SSH 에이전트(ssh-agentmacOS 및 Linux의 경우 Windows OpenSSH 인증 에이전트 서비스)에 인증을 위임합니다. |
터널 작동 방식
SSH 터널을 사용하도록 설정하면 확장은 먼저 SSH 연결을 설정하고, 로컬 포트를 앞으로 만든 다음, 해당 전달을 통해 PostgreSQL에 연결합니다. 이 때문에:
- 주 연결 필드의 서버 이름은 종종 개인 IP인 SSH 호스트에서 볼 수 있는
localhost데이터베이스 주소여야 합니다. -
포트는 대상 호스트(일반적으로
5432)의 PostgreSQL 포트여야 합니다. - SSH 터널 설정은 연결 대기 시간을 추가합니다. 시간 제한이 발생하는 경우 고급 옵션에서 연결 시간 제한 값을 늘리는 것이 좋습니다.
올바른 고급 옵션 선택
| Scenario | 권장 기능 |
|---|---|
기존 PostgreSQL URI, 앱 코드 조각 또는 psql 명령이 있습니다. |
연결 문자열 탭을 선택하여 필드를 자동으로 채웁다. |
| 조직에 사용자 지정 CA 파일 또는 상호 TLS가 필요합니다. | 고급 서랍의 SSL 섹션에서 SSL 인증서 필드를 구성합니다. |
| 서버 확인을 위해 OS 인증서 저장소를 사용해야 합니다. | SSL 루트 인증서 모드를 시스템 모드로 설정하고 SSL 모드를 Verify-Full로 설정합니다. |
| 점프 상자 또는 요새 호스트를 통해서만 데이터베이스에 연결할 수 있습니다. | 고급 서랍의 SSH 터널 섹션에서 SSH 터널 을 사용하도록 설정합니다. |