다음 기능은 a를 젠 토토하는 것을 다룹니다.postgresql백엔드 서버. 응용 프로그램 프로그램에는 한 번에 몇 가지 백엔드 젠 토토이 열릴 수 있습니다.pgconn
객체, 함수에서 얻은 객체pqconnectdb
, PQCONNECTDBPARAMS
또는pqsetdblogin
. 이러한 기능은 아마도 널이 아닌 객체 포인터를 항상 반환 할 것입니다. 아마도 메모리가 너무 적지 않는 한pgconn
개체. 그만큼pqstatus
쿼리가 젠 토토 객체를 통해 전송되기 전에 성공적인 젠 토토에 대한 리턴 값을 확인하려면 함수가 호출되어야합니다.
신뢰할 수없는 사용자가 채택되지 않은 데이터베이스에 액세스 할 수있는 경우보안 스키마 사용 패턴, 공개적으로 쓰레기 스키마를 제거하여 각 세션을 시작하십시오search_path
. 하나는 매개 변수 키워드를 설정할 수 있습니다옵션
value-csearch_path =
. 또는 발행 할 수 있습니다pqExec (
젠 토토 후. 이 고려 사항은libpq; 임의의 SQL 명령을 실행하기 위해 모든 인터페이스에 적용됩니다.conn
, "pg_catalog.set_config ( 'search_path', '', false)" 선택
UNIX에서, 개방형 LIBPQ 젠 토토로 프로세스를 포킹하면 부모와 자식 프로세스가 동일한 소켓과 운영 체제 자원을 공유하기 때문에 예측할 수없는 결과를 초래할 수 있습니다. 이러한 이유로, 그러한 사용은 권장되지 않지만exec
아동 프로세스에서 새 실행 파일로드하기위한 아동 프로세스에서 안전합니다.
PQCONNECTDBPARAMS
#데이터베이스 서버에 새로운 젠 토토을합니다.
pgconn *pqconnectdbparams (const char *const *키워드,
이 함수는 2에서 가져온 매개 변수를 사용하여 새 데이터베이스 젠 토토을 엽니 다.null
-종결 배열. 첫 번째,키워드
는 문자열 배열로 정의되며 각각은 핵심 단어입니다. 두 번째,값
, 각 키 단어의 값을 제공합니다. 같지 않은pqsetdblogin
아래에서는 기능 서명을 변경하지 않고 매개 변수 세트를 확장 할 수 있으므로이 기능 (또는 비 차단 아날로그 사용PQConnectStartParams
andpqconnectpoll
) 새 응용 프로그램 프로그래밍에 선호됩니다.
현재 인식 된 매개 변수 키워드는에 나열되어 있습니다.섹션 32.1.2.
전달 된 배열은 모든 기본 매개 변수를 사용하기 위해 비어 있거나 하나 이상의 매개 변수 설정을 포함 할 수 있습니다. 길이가 일치해야합니다.null
입력키워드
배열. 또한값
비와 관련된 입력null
키워드
Entry isnull
또는 빈 문자열, 해당 항목이 무시되고 다음 배열 항목 쌍으로 처리됩니다.
언제expand_dbname
는 0이 아니며 첫 번째 값dbname
키워드가 확인하여 A젠 토토 문자열. 그렇다면“확장”문자열에서 추출한 개별 젠 토토 매개 변수로. 값은 동일한 부호를 포함하는 경우 데이터베이스 이름이 아닌 젠 토토 문자열로 간주됩니다 (=
) 또는 URI 체계 지정자로 시작합니다. (젠 토토 문자열 형식에 대한 자세한 내용은섹션 32.1.1.) 첫 번째 발생dbname
이런 식으로 처리됩니다. 모든 후속dbname
매개 변수는 일반 데이터베이스 이름으로 처리됩니다.
일반적으로 매개 변수 배열은 처음부터 끝까지 처리됩니다. 키워드가 반복되면 마지막 값 (그렇지 않습니다null
또는 빈)가 사용됩니다. 이 규칙은 특히 젠 토토 문자열에서 발견 된 핵심 단어가에 나타나는 것과 충돌 할 때 적용됩니다.키워드
배열. 따라서 프로그래머는 젠 토토 문자열에서 가져온 값에 의해 배열 항목이 재정의 할 수 있는지 또는 재정의 할 수 있는지 결정할 수 있습니다.dbname
Connection String의 필드에 의해 입력을 무효화 할 수 있으며, 그 결과 그 필드는 이후에 나타나는 배열 항목에 의해 재정의됩니다.dbname
(그러나 그 항목이 비어 있지 않은 값을 공급하는 경우에만)
모든 배열 항목과 확장 된 젠 토토 문자열을 처리 한 후에는 UNSET를 유지하는 젠 토토 매개 변수는 기본값으로 채워집니다. UNSET 매개 변수의 해당 환경 변수 인 경우 (참조PostgreSQL : 문서 : 개발 : 32.15. 환경 젠 토토) 설정되어 값이 사용됩니다. 환경 변수가 설정되지 않으면 매개 변수의 내장 기본값이 사용됩니다.
pqconnectdb
#데이터베이스 서버에 새로운 젠 토토을합니다.
pgconn *pqconnectdb (const char *conninfo);
이 함수는 문자열에서 가져온 매개 변수를 사용하여 새 데이터베이스 젠 토토을 엽니 다Conninfo
.
전달 된 문자열은 모든 기본 매개 변수를 사용하기 위해 비어 있거나 Whitespace로 분리 된 하나 이상의 매개 변수 설정을 포함하거나 A를 포함 할 수 있습니다uri. 보다섹션 32.1.1자세한 내용.
pqsetdblogin
#데이터베이스 서버에 새로운 젠 토토을합니다.
pgconn *pqsetdblogin (const char *pghost,
이것은의 전임자입니다.pqconnectdb
고정 된 매개 변수 세트가 있습니다. 누락 된 매개 변수가 항상 기본값을 사용한다는 점을 제외하고는 동일한 기능이 있습니다.null
또는 기본적으로 고정 될 고정 된 매개 변수 중 하나에 대한 빈 문자열.
dbname
포함=
서명 또는 유효한 젠 토토uriPrefix, A로 간주됩니다.Conninfo
통과 된 것과 정확히 같은 방식으로 문자열pqconnectdb
, 나머지 매개 변수는 지정된대로 적용됩니다.PQCONNECTDBPARAMS
.
pgtty
더 이상 사용되지 않고 전달 된 값은 무시됩니다.
pqsetdb
#데이터베이스 서버에 새로운 젠 토토을합니다.
pgconn *pqsetdb (char *pghost,
이것은 호출하는 매크로입니다pqsetdblogin
로그인
andPWD
매개 변수. 아주 오래된 프로그램과의 역 호환성을 위해 제공됩니다.
PQConnectStartParams
PQConnectStart
pqconnectpoll
#비 블로킹 방식으로 데이터베이스 서버에 젠 토토하십시오.
PGCONN *PQCONNECTSTARTPARAMS (const char *const *키워드,
이 세 가지 기능은 데이터베이스 서버에 젠 토토을 열어 응용 프로그램의 실행 스레드가 원격 I/O에서 차단되지 않도록 사용됩니다. 이 접근법의 요점은 I/O가 완료 될 대기가 응용 프로그램의 기본 루프에서 내부가 아닌 내부가 아닌 내부에서 발생할 수 있다는 것입니다.PQCONNECTDBPARAMS
또는pqconnectdb
, 따라서 응용 프로그램은 다른 활동과 병렬 로이 작업을 관리 할 수 있습니다.
withPQConnectStartParams
, 데이터베이스 젠 토토은에서 가져온 매개 변수를 사용하여 이루어집니다.키워드
and값
배열 및 제어expand_dbname
, 위에서 설명한대로PQCONNECTDBPARAMS
.
withPQConnectStart
, 데이터베이스 젠 토토은 문자열에서 가져온 매개 변수를 사용하여 만들어집니다Conninfo
위에서 설명한대로pqconnectdb
.
아니PQConnectStartParams
NORPQConnectStart
NORpqconnectpoll
여러 제한 사항이 충족되는 한 차단됩니다.
비 차단 젠 토토 요청을 시작하려면 전화PQConnectStart
또는PQConnectStartParams
. 결과가 null이면libpq새로운 것을 할당 할 수 없었습니다pgconn
구조. 그렇지 않으면 유효한pgconn
포인터가 반환되었습니다 (아직 데이터베이스에 대한 유효한 젠 토토을 나타내지는 않지만). 다음 호출pqstatus (conn)
. 결과가 인 경우Connection_Bad
, 일반적으로 유효하지 않은 젠 토토 매개 변수로 인해 젠 토토 시도가 이미 실패했습니다.
ifPQConnectStart
또는PQConnectStartParams
성공, 다음 단계는 여론 조사입니다libpq젠 토토 순서를 진행할 수 있도록. 사용pqsocket (conn)
데이터베이스 젠 토토 기본 소켓의 설명자를 얻으려면. (주의 : 소켓이 동일하게 남아 있다고 가정하지 마십시오pqconnectpoll
전화.) 루프 : ifpqconnectpoll (conn)
마지막 반품pgres_polling_reading
, 소켓이 읽을 준비가 될 때까지 기다리십시오 (select ()
, poll ()
또는 유사한 시스템 기능). 참고pqsocketpoll
을 추상화하여 보일러 플레이트를 줄이는 데 도움이 될 수 있습니다.select (2)
또는설문 조사 (2)
시스템에서 사용할 수있는 경우. 그런 다음 호출pqconnectpoll (conn)
다시. 반대로, ifpqconnectpoll (conn)
마지막 반품pgres_polling_writing
, 소켓이 쓸 준비가 될 때까지 기다렸다가 전화pqconnectpoll (conn)
다시. 첫 번째 반복에서, 즉 아직 전화하지 않은 경우pqconnectpoll
, 마지막으로 반환 된 것처럼 행동pgres_polling_writing
. 이 루프를 계속할 때까지pqconnectpoll (conn)
반환pgres_polling_failed
, 젠 토토 절차가 실패했음을 나타내거나pgres_polling_ok
, 젠 토토이 성공적으로 이루어 졌음을 나타냅니다.
젠 토토하는 동안 언제든지 젠 토토 상태를 호출하여 확인할 수 있습니다pqstatus
. 이 호출이 반환되는 경우Connection_Bad
, 그러면 젠 토토 절차가 실패했습니다. 통화가 반환되는 경우Connection_ok
, 그러면 젠 토토이 준비되었습니다. 이 두 상태는의 반환 값에서 똑같이 감지 할 수 있습니다.pqconnectpoll
, 위에서 설명합니다. 다른 상태는 또한 비동기 젠 토토 절차 중에 발생할 수 있습니다.
Connection_started
#젠 토토이 이루어지기를 기다리고 있습니다.
Connection_Made
#젠 토토 확인; 보내기를 기다리고 있습니다.
Connection_awaiting_Response
#서버에서 응답을 기다리고 있습니다.
Connection_auth_ok
#인증을 받았습니다. 백엔드 스타트 업을 기다리고 있습니다.
Connection_SSL_STARTUP
#SSL 암호화 협상.
Connection_gss_startup
#GSS 암호화 협상.
Connection_check_writable
#젠 토토이 트랜잭션 쓰기를 처리 할 수 있는지 확인합니다.
Connection_check_standby
#젠 토토이 대기 모드에서 서버에 젠 토토되어 있는지 확인합니다.
Connection_Consume
#젠 토토에 나머지 응답 메시지 소비.
이러한 상수는 (호환성을 유지하기 위해) 유지되지만, 응용 프로그램은 특정 순서 또는 전혀, 또는 상태가 항상 문서화 된 값 중 하나 인 상태에 의존해서는 안됩니다. 응용 프로그램은 다음과 같은 일을 할 수 있습니다.
스위치 (pqstatus (conn))
theConnect_Timeout
사용할 때 젠 토토 매개 변수가 무시됩니다pqconnectpoll
; 과도한 시간이 경과했는지 여부를 결정하는 것은 응용 프로그램의 책임입니다.PQConnectStart
뒤 따르는pqconnectpoll
루프는에 해당합니다.pqconnectdb
.
PQConnectStart
또는PQConnectStartParams
널이 아닌 포인터를 반환하면 전화해야합니다pqfinish
완료되면 구조와 관련 메모리 블록을 처리하기 위해. 젠 토토 시도가 실패하거나 포기하더라도 수행해야합니다.
pqsocketpoll
#폴링 젠 토토의 기본 소켓 디스크립터를 검색pqsocket
. 이 함수의 주요 사용은의 문서에 설명 된 젠 토토 순서를 통해 반복됩니다.PQConnectStartParams
.
typedef int64_t pg_usec_time_t;
이 기능은 선택적으로 타임 아웃으로 파일 디스크립터의 폴링을 수행합니다. 만약에forread
는 0이 아니며 소켓이 읽을 준비가되면 기능이 종료됩니다. 만약에forwrite
소켓이 쓸 준비가되면 기능이 종료됩니다.
타임 아웃은에 의해 지정됩니다.end_time
, UNIX Epoch 이후 여러 마이크로 초로 표현 된 대기를 중단 할 때입니다 (즉,time_t
1 백만 번). 타임 아웃은 무한대입니다end_time
is-1
. 시간 초과는 즉각적입니다 (차단 없음) ifend_time
is0
(또는 실제로 지금 언제라도). 타임 아웃 값은 원하는 마이크로 초를 추가하여 편리하게 계산할 수 있습니다.pqgetCurrentTimeUsec
. 기본 시스템 호출은 마이크로 초 정밀도보다 적을 수 있으므로 실제 지연이 부정확 할 수 있습니다.
함수는 값보다 큰 값을 반환합니다0
지정된 조건이 충족되면0
타임 아웃이 발생한 경우 또는-1
오류가 발생한 경우. 를 확인하여 오류를 검색 할 수 있습니다.errno (3)
값. 이벤트 모두forread
andforwrite
| 0은 0입니다. 함수는 즉시 타임 아웃 표시를 반환합니다.
pqsocketpoll
중 하나를 사용하여 구현됩니다설문 조사 (2)
또는select (2)
26102_26130Pollin
andPollout
From설문 조사 (2)
또는readfds
andWriteFds
Fromselect (2)
, 자세한 내용은
pqconndefaults
#기본 젠 토토 옵션을 반환합니다.
pqconninfooption *pqconndefaults (void);
젠 토토 옵션 배열을 반환합니다. 이것은 가능한 모든 것을 결정하는 데 사용할 수 있습니다pqconnectdb
옵션 및 현재 기본값 값. 반환 값은 배열을 가리 킵니다pqconninfooption
구조.키워드
포인터. 메모리를 할당 할 수없는 경우 널 포인터가 반환됩니다.val
필드)는 환경 변수 및 기타 컨텍스트에 따라 다릅니다. 누락되거나 잘못된 서비스 파일은 조용히 무시됩니다.
옵션 배열을 처리 한 후 옵션을 전달하여PQCONNINFOFREE
. 이 작업이 완료되지 않으면 각 호출마다 소량의 메모리가 유출됩니다pqconndefaults
.
PQCONNINFO
#라이브 젠 토토이 사용하는 젠 토토 옵션을 반환합니다.
pqconninfooption *pqconninfo (pgconn *conn);
젠 토토 옵션 배열을 반환합니다. 이것은 가능한 모든 것을 결정하는 데 사용할 수 있습니다pqconnectdb
옵션 및 서버에 젠 토토하는 데 사용 된 값. 반환 값은 배열을 가리 킵니다pqconninfooption
구조.키워드
포인터. 위의 모든 노트pqconndefaults
또한 결과에 적용PQCONNINFO
.
PQCONNINFOPARSE
#제공된 젠 토토 문자열에서 구문 분석 옵션을 반환합니다.
pqconninfooption *pqconninfoparse (const char *conninfo, char ** errmsg);
젠 토토 문자열을 구문 분석하고 결과 옵션을 배열로 반환합니다. 또는 반환null
젠 토토 문자열에 문제가있는 경우. 이 기능은를 추출하는 데 사용될 수 있습니다.pqconnectdb
제공된 젠 토토 문자열의 옵션. 반환 값은 배열을 가리 킵니다pqconninfooption
구조.키워드
포인터.
모든 법적 옵션이 결과 배열에 존재하지만pqconninfooption
젠 토토 문자열에 존재하지 않는 옵션의 경우val
설정null
; 기본값은 삽입되지 않습니다.
iferrmsg
null
,*errmsg
로 설정되었습니다null
성공에 관한 것, 그렇지 않으면Malloc
'd 오류 문자열 문제를 설명합니다. (또한 가능합니다*errmsg
null
그리고 반환 할 함수null
; 이것은 메모리 외 상태를 나타냅니다.)
옵션 배열을 처리 한 후 옵션을 전달하여PQCONNINFOFREE
. 이 작업이 완료되지 않으면 각 호출마다 일부 메모리가 유출됩니다PQCONNINFOPARSE
. 반대로 오류가 발생하면errmsg
null
,를 사용하여 오류 문자열을 제거하십시오PQFREEMEM
.
pqfinish
#서버 젠 토토을 닫습니다. 또한에 사용 된 메모리를 해방합니다.pgconn
개체.
void pqfinish (pgconn *conn);
서버 젠 토토 시도가 실패하더라도 (pqstatus
), 응용 프로그램은 전화해야합니다pqfinish
pgconn
개체. 그만큼pgconn
포인터는 다시 사용해서는 안됩니다pqfinish
호출.
pqreset
#통신 채널을 서버로 재설정합니다.
void pqreset (pgconn *conn);
이 함수는 서버에 대한 젠 토토을 닫고 이전에 사용한 동일한 매개 변수를 사용하여 새로운 젠 토토을 설정하려고 시도합니다. 작업 젠 토토이 손실되면 오류 복구에 유용 할 수 있습니다.
PQRESETSTART
PQRESETPOLL
#블로킹하지 않은 방식으로 통신 채널을 서버로 재설정합니다.
int pqresetstart (pgconn *conn);
이 기능은 서버에 대한 젠 토토을 닫고 이전에 사용한 동일한 매개 변수를 사용하여 새로운 젠 토토을 설정하려고 시도합니다. 작업 젠 토토이 손실되면 오류 복구에 유용 할 수 있습니다.pqreset
(위) 비 블로킹 방식으로 작용한다는 점에서. 이러한 기능은와 동일한 제한을 겪습니다.PQConnectStartParams
, PQConnectStart
andpqconnectpoll
.
젠 토토 재설정을 시작하려면 CallPQRESETSTART
. 0을 반환하면 재설정이 실패했습니다.PQRESETPOLL
|pqconnectpoll
.
pqpingparams
#pqpingparams
서버의 상태를보고합니다. 젠 토토 매개 변수를 동일한 젠 토토 매개 변수와 동일하게 허용합니다.PQCONNECTDBPARAMS
, 위에서 설명합니다. 서버 상태를 얻기 위해 올바른 사용자 이름, 암호 또는 데이터베이스 이름 값을 제공 할 필요는 없습니다.
pgping pqpingparams (const char * const * 키워드,
함수는 다음 값 중 하나를 반환합니다.
pqping_ok
#서버가 실행 중이며 젠 토토을 수락하는 것처럼 보입니다.
pqping_reject
#서버가 실행 중이지만 젠 토토을 방해하는 상태 (시작, 종료 또는 충돌 복구).
pqping_no_response
#서버에 연락 할 수 없습니다. 이는 서버가 실행되지 않았거나 주어진 젠 토토 매개 변수 (예 : 잘못된 포트 번호)에 문제가 있거나 네트워크 젠 토토 문제 (예 : 젠 토토 요청을 차단하는 방화벽)가 있음을 나타냅니다..
pqping_no_attemp
#제공된 매개 변수가 분명히 부정확하거나 클라이언트 측 문제가 있었기 때문에 서버에 연락하려는 시도가 없었습니다 (예 : 메모리에서)..
pqping
#pqping
서버의 상태를보고합니다. 젠 토토 매개 변수를 동일한 젠 토토 매개 변수와 동일하게 허용합니다.pqconnectdb
, 위에서 설명합니다. 서버 상태를 얻기 위해 올바른 사용자 이름, 암호 또는 데이터베이스 이름 값을 제공 할 필요는 없습니다.
pgping pqping (const char *conninfo);
반환 값은와 동일합니다pqpingparams
.
PQSETSSLKEYPASSHOOK_OPENSSL
#PQSETSSLKEYPASSHOOK_OPENSSL
응용 프로그램을 재정의하자libpq's암호화 된 클라이언트 인증서 키 파일의 기본 처리사용SSLPASSWORD또는 대화식 프롬프트.
void pqsetsslkeypasshook_openssl (pqsslkeypasshook_openssl_type hook);
응용 프로그램은 서명이있는 콜백 함수에 포인터를 전달합니다.
int Callback_fn (char *buf, int size, pgconn *conn);
whylibpq그런 다음 호출대신기본값pqdefaultsslkeypasshook_openssl
핸들러. 콜백은 키의 비밀번호를 결정하고 결과 버퍼에 복사해야합니다buf
크기size
. 문자열buf
무효가 종결되어야합니다. 콜백은 저장된 비밀번호의 길이를 반환해야합니다.buf
널 터미네이터 제외. 실패시 콜백이 설정되어야합니다buf [0] = '\ 0'
그리고 반환 0. 참조pqdefaultsslkeypasshook_openssl
inlibpq의 예를위한 소스 코드.
사용자가 명시 적 키 위치를 지정하면 그 경로가conn-> sslkey
콜백이 호출 될 때. 기본 키 경로를 사용하는 경우 비어 있습니다.OpenSSL비밀번호 콜백 또는 자신의 처리를 정의합니다.
앱 콜백은 처리되지 않은 사례를 위임하여pqdefaultsslkeypasshook_openssl
또는 먼저 전화하여 0을 반환하거나 완전히 무시하면 다른 것을 시도하십시오.
콜백필수예외와 함께 정상 흐름 제어 탈출,longjmp (...)
등은 정상적으로 반환해야합니다.
PQGETSSLKEYPASSHOOK_OPENSSL
#PQGETSSLKEYPASSHOOK_OPENSSL
현재 클라이언트 인증서 키 비밀번호 후크를 반환합니다.null
없는 경우.
PQSSLKEYPASSHOOK_OPENSSL_TYPE PQGETSSLKEYPASSHOOK_OPENSSL (void);
몇libpq함수는 사용자 지정 문자열을 구문 분석하여 젠 토토 매개 변수를 얻습니다. 이 문자열에는 2 개의 허용 형식이 있습니다 : 일반 키워드/가치 문자열 및 URI.RFC 3986-다중 호스트 젠 토토 문자열이 아래에 설명 된대로 허용됩니다.
키워드/값 형식에서 각 매개 변수 설정은 양식에 있습니다키워드
=
value
, 설정 사이의 공간이있는. 설정의 동일한 부호 주변의 공간은 선택 사항입니다.keyword = 'value'
. 값 내의 단일 따옴표와 백 슬래시는 백 슬래시로 탈출해야합니다.\ '
and\\
.
예 :
host = localhost port = 5432 dbname = mydb connect_timeout = 10
인식 된 매개 변수 키워드는에 나열되어 있습니다.섹션 32.1.2.
젠 토토을위한 일반 양식uriIS :
postgresql : // [userspec
@] [Hostspec
] [/dbname
] [?Paramspec
] 여기서userspec
IS :사용자
[:비밀번호
] andHostspec
IS : [host
] [:포트
] [,...] andParamspec
IS :이름
=value
[& ...]
theuri체계 지정자가 될 수 있습니다postgresql : //
또는Postgres : //
. 나머지 각각uri부품은 선택 사항입니다. 다음 예제는 유효 함을 보여줍니다uri구문 :
postgresql : //
일반적으로 일반적으로uri대안으로 이름이 지정된 매개 변수로 제공 될 수 있습니다. 예를 들어:
postgresql : // mydb? host = localhost & port = 5433
모든 이름의 매개 변수는 나열된 키워드와 일치해야합니다섹션 32.1.2, JDBC 젠 토토과의 호환성을 제외하고uris, 인스턴스ssl = true
로 번역됩니다sslmode = require
.
젠 토토uri|퍼센트 인코딩부품에 특별한 의미를 가진 기호가 포함 된 경우. 다음은 동등한 부호 (의 예입니다.=
)%3D
그리고의 공간 문자%20
:
postgresql : // user@localhost : 5433/mydb? 옵션 = -c%20Synchronous_commit%3doff
호스트 부분은 호스트 이름 또는 IP 주소 일 수 있습니다. IPv6 주소를 지정하려면 정사각형 괄호 안에 둘러싸여 있습니다.
postgresql : // [2001 : db8 :: 1234]/database
호스트 부분은 매개 변수에 대해 설명 된대로 해석됩니다host. 특히, 호스트 부품이 비어 있거나 절대 경로 이름처럼 보이는 경우 Unix-Domain 소켓 젠 토토이 선택됩니다. 그렇지 않으면 TCP/IP 젠 토토이 시작됩니다.
postgresql : // dbname? host =/var/lib/postgresql
단일 URI에서 각각 옵션 포트 구성 요소가있는 여러 호스트 구성 요소를 지정할 수 있습니다. 양식의 uripostgresql : // host1 : port1, host2 : port2, host3 : port3/
양식의 젠 토토 문자열과 동일합니다host = host1, host2, host3 port = port1, port2, port3
. 아래에 설명 된 바와 같이, 각 호스트는 젠 토토이 성공적으로 설정 될 때까지 차례로 시도됩니다.
젠 토토할 여러 호스트를 지정하여 주어진 순서로 시도 할 수 있습니다. 키워드/값 형식에서host
, hostaddr
및포트
옵션은 쉼표로 구분 된 값 목록을 허용합니다. 예를 들어 첫 번째 지정된 각 옵션에 동일한 수의 요소가 제공되어야합니다.hostaddr
첫 번째 호스트 이름, 두 번째 호스트에 해당합니다.hostaddr
두 번째 호스트 이름 등에 해당합니다. 예외로, 단 하나만포트
지정되어 있으며 모든 호스트에 적용됩니다.
젠 토토 URI 형식에서 다중 내용을 나열 할 수 있습니다호스트 : 포트
쉼표로 분리 된 쌍host
URI의 구성 요소
두 형식의 두 형식에서는 단일 호스트 이름이 여러 네트워크 주소로 변환 될 수 있습니다. 이것의 일반적인 예는 IPv4와 IPv6 주소가 모두있는 호스트입니다.
여러 호스트가 지정되거나 단일 호스트 이름이 여러 주소로 변환되면 모든 호스트와 주소가 성공할 때까지 순서대로 시도됩니다. 호스트에 도달 할 수없는 경우 젠 토토이 실패합니다.
암호 파일을 사용하는 경우 호스트에 대해 다른 암호를 가질 수 있습니다. 다른 모든 젠 토토 옵션은 목록의 모든 호스트에 대해 동일합니다.
현재 인식 된 매개 변수 키워드는 다음과 같습니다.
host
#젠 토토할 호스트 이름.호스트 이름이 절대 경로 이름처럼 보이면 TCP/IP 통신 대신 UNIX- 도메인 커뮤니케이션을 지정합니다. 값은 소켓 파일이 저장되는 디렉토리의 이름입니다.@
, 초록 네임 스페이스 (현재 Linux 및 Windows에서 지원되는)에서 Unix-Domain 소켓으로 간주됩니다. 기본 동작host
지정되지 않았거나 비어 있지 않으면 유닉스 도메인 소켓에 젠 토토하는 것입니다in/tmp
(또는 어떤 소켓 디렉토리가 지정되었는지postgresql건축). Windows에서 기본값은에 젠 토토하는 것입니다.LocalHost
.
쉼표로 구분 된 호스트 이름 목록도 허용되며,이 경우 목록의 각 호스트 이름이 순서대로 시도됩니다. 목록의 빈 항목은 위에서 설명한대로 기본 동작을 선택합니다.섹션 32.1.1.3자세한 내용.
hostaddr
#젠 토토할 호스트의 숫자 IP 주소. 표준 IPv4 주소 형식 (예 :이어야합니다.172.28.40.9
. 컴퓨터가 IPv6을 지원하는 경우 해당 주소를 사용할 수도 있습니다.host
해당 IP 주소를 찾기 위해 찾아 볼 것입니다. 또는 ifhost
IP 주소를 지정하면 해당 값이 직접 사용됩니다.
사용hostaddr
애플리케이션이 호스트 이름 조회를 피할 수 있도록합니다. 이는 시간 제약 조건이있는 응용 프로그램에서 중요 할 수 있습니다. 그러나 GSSAPI 또는 SSPI 인증 방법 및에 호스트 이름이 필요합니다.verify-full
SSL 인증서 확인. 다음 규칙이 사용됩니다.
ifhost
hostaddr
, 호스트 이름 조회가 발생합니다. (사용시pqconnectpoll
, 조회는 발생할 때 발생합니다.pqconnectpoll
먼저이 호스트 이름을 고려하면 원인이 될 수 있습니다pqconnectpoll
상당한 시간 동안 차단하기 위해.)
ifhostaddr
host
, 값hostaddr
서버 네트워크 주소를 제공합니다. 인증 방법에 호스트 이름이 필요한 경우 젠 토토 시도가 실패합니다.
둘 다host
andhostaddr
지정되어 있습니다.hostaddr
서버 네트워크 주소를 제공합니다. 의 값host
인증 방법에 요구하지 않는 한 무시됩니다.이 경우 호스트 이름으로 사용됩니다.
인증이 실패 할 가능성이 높습니다host
네트워크 주소에서 서버 이름이 아닙니다hostaddr
. 또한, 둘 다host
andhostaddr
지정되어 있습니다.host
비밀번호 파일에서 젠 토토을 식별하는 데 사용됩니다 (참조토토 베이 : 문서 : 개발 : 32.16. 암호 파일).
쉼표로 구분 된 목록hostaddr
값도 허용되며,이 경우 목록의 각 호스트가 순서대로 시도됩니다. 목록의 빈 항목으로 인해 해당 호스트 이름이 사용되거나 비어있는 경우 기본 호스트 이름도 사용됩니다.섹션 32.1.1.3자세한 내용.
호스트 이름 또는 호스트 주소가 없으면libpq로컬 UNIX- 도메인 소켓을 사용하여 젠 토토합니다. 또는 Windows에서는 젠 토토을 시도합니다LocalHost
.
포트
#서버 호스트에서 젠 토토할 포트 번호 또는 Unix-Domain 젠 토토을위한 소켓 파일 이름 확장.여러 호스트가에 제공된 경우host
또는hostaddr
매개 변수,이 매개 변수는 호스트 목록과 동일한 길이의 쉼표로 구분 된 포트 목록을 지정하거나 모든 호스트에 사용할 단일 포트 번호를 지정할 수 있습니다. 빈 문자열 또는 쉼표로 구분 된 목록의 빈 항목은시 설정된 기본 포트 번호를 지정합니다.postgresql건설되었습니다.
dbname
#데이터베이스 이름. 기본값은 사용자 이름과 동일합니다.섹션 32.1.1그에 대한 자세한 내용은.
사용자
#postgresql사용자 이름을 젠 토토할 수 있습니다. 기본값은 응용 프로그램을 실행하는 사용자의 운영 체제 이름과 동일합니다.
비밀번호
#서버가 암호 인증을 요구하는 경우 사용할 비밀번호.
Passfile
#비밀번호를 저장하는 데 사용되는 파일의 이름을 지정합니다 (참조토토 베이 : 문서 : 개발 : 32.16. 암호 파일). 기본값으로~/.pgpass
또는%appdata%\ postgresql \ pgpass.conf
Microsoft Windows에서. (이 파일이 존재하지 않으면 오류 가보고되지 않습니다.)
require_auth
#클라이언트가 서버에서 요구하는 인증 방법을 지정합니다. 서버가 필수 메소드를 사용하여 클라이언트를 인증하거나 서버에서 인증 핸드 셰이크가 완전히 완료되지 않은 경우 젠 토토이 실패합니다.
a를 추가하면 메소드가 무효화 될 수 있습니다.!
접두사,이 경우 서버는not나열된 방법을 시도하십시오. 다른 방법이 허용되며 서버는 클라이언트를 전혀 인증하지 않을 수 있습니다.any나열된 부정 방법의. 부정 및 음성이없는 양식은 동일한 설정에서 결합되지 않을 수 있습니다.
최종 특별 사례로서없음
메소드는 서버가 인증 문제를 사용하지 않아야합니다. (어떤 형태의 인증을 요구하기 위해 부정 할 수도 있습니다.)
다음 방법이 지정 될 수 있습니다.
비밀번호
서버는 일반 텍스트 비밀번호 인증을 요청해야합니다.
MD5
서버는 MD5 해시 비밀번호 인증을 요청해야합니다.
MD5 암호화 암호에 대한 지원은 더 이상 사용되지 않으며 향후 릴리스에서 제거됩니다postgresql. 참조PostgreSQL : 문서 : 개발 : 20.5. 암호 토토다른 비밀번호 유형으로 마이그레이션하는 것에 대한 자세한 내용.
gss
서버는 Kerberos 핸드 셰이크를 통해를 요청해야합니다.GSSAPI또는 설정gss-암호화 된 채널 (참조gssencmode).
SSPI
서버는 Windows를 요청해야합니다SSPI인증.
Scram-Sha-256
서버는 클라이언트와의 SCRAM-SHA-256 인증 교환을 성공적으로 완료해야합니다.
oauth
서버는 클라이언트에게 Oauth Bearer 토큰을 요청해야합니다.
없음
서버는 클라이언트에게 인증 교환을 신속하게하지 않아야합니다. (TLS를 통한 클라이언트 인증서 인증이나 암호화 된 전송을 통한 GSS 인증을 금지하지는 않습니다.)
Channel_Binding
#이 옵션은 클라이언트의 채널 바인딩 사용을 제어합니다. 설정요구
젠 토토이 채널 바인딩을 사용해야한다는 것을 의미합니다.선호
클라이언트가 가능한 경우 채널 바인딩을 선택하고비활성화
채널 바인딩 사용을 방지합니다. 기본값은선호
ifpostgresqlSSL 지원으로 컴파일됩니다. 그렇지 않으면 기본값은입니다.비활성화
.
채널 바인딩은 서버가 클라이언트에 자체적으로 인증하는 방법입니다. SSL 젠 토토을 통해서만 지원됩니다postgresql11 이상을 사용하는 서버Scram
인증 방법.
Connect_Timeout
#몇 초 만에 젠 토토하는 동안 대기 할 최대 시간 (소수 정수로 쓰기, 예를 들어,10
). 0, 음수 또는 지정되지 않은 것은 무기한 대기를 의미합니다.Connect_Timeout
5, 5 초 이내에 젠 토토되지 않으면 각 호스트가 시간을 초과하므로 젠 토토을 기다리는 총 시간은 최대 10 초가 될 수 있습니다.
client_encoding
#이것은를 설정합니다.client_encoding
이 젠 토토의 구성 매개 변수. 해당 서버 옵션으로 허용되는 값 외에도 사용할 수 있습니다auto
클라이언트의 현재 로케일에서 올바른 인코딩을 결정하려면 (LC_CTYPE
UNIX 시스템의 환경 변수).
옵션
#Connection Start에서 서버로 보낼 명령 줄 옵션을 지정합니다. 예를 들어, 이것을 설정-C geqo = off
또는-geqo = off
세션의 값을 설정합니다geqo
매개 변수 toOFF
. 이 문자열 내의 공간은 백 슬래시로 탈출하지 않는 한 명령 줄 인수를 분리하는 것으로 간주됩니다 (\
); 쓰다\\
문자 그대로의 백 슬래시를 나타냅니다. 사용 가능한 옵션에 대한 자세한 설명을 보려면범퍼카 토토 : 문서 : 개발 : 19 장 서버 구성.
Application_Name
#값을 지정Application_Name구성 매개 변수.
fallback_application_name
#Application_Name구성 매개 변수. 이 값은 값이 제공되지 않으면 사용됩니다.Application_Name
젠 토토 매개 변수 또는를 통해pgappname
환경 변수. 폴백 이름을 지정하는 것은 기본 응용 프로그램 이름을 설정하지만 사용자가 재정의 할 수있는 일반 유틸리티 프로그램에서 유용합니다.
Keepalives
#클라이언트 측 TCP 관리자가 사용되는지 여부를 제어합니다. 기본값은 1이지만 의미가 있지만 0으로 변경할 수 있습니다.
Keepalives_idle
#TCP가 서버에 keepalive 메시지를 보내야 할 때의 비 활동 초의 초 수를 제어합니다. 0의 값은 시스템 기본값을 사용합니다.TCP_KEEPIDLE
또는 동등한 소켓 옵션을 사용할 수 있으며 Windows에서 사용할 수 있습니다. 다른 시스템에서는 효과가 없습니다.
Keepalives_interval
#서버가 인정하지 않는 TCP requalive 메시지를 재전송해야합니다. 0의 값은 시스템 기본값을 사용합니다.TCP_KEEPINTVL
또는 동등한 소켓 옵션을 사용할 수 있으며 Windows에서 사용할 수 있습니다. 다른 시스템에서는 효과가 없습니다.
Keepalives_Count
#클라이언트의 서버와의 젠 토토이 죽은 것으로 간주되기 전에 손실 될 수있는 TCP 유지 보안의 수를 제어합니다. 0의 값은 시스템 기본값을 사용합니다.TCP_KEEPCNT
또는 동등한 소켓 옵션을 사용할 수 있습니다. 다른 시스템에서는 효과가 없습니다.
TCP_USER_TIMEOUT
#제어 젠 토토이 강제로 닫히기 전에 전송 된 데이터가 검토되지 않은 상태로 유지 될 수있는 밀리 초의 수를 제어합니다. 0의 값은 시스템 기본값을 사용합니다.TCP_USER_TIMEOUT
사용 가능; 다른 시스템에서는 효과가 없습니다.
복제
#이 옵션은 젠 토토이 일반 프로토콜 대신 복제 프로토콜을 사용해야하는지 여부를 결정합니다. 이것은 PostgreSQL 복제 젠 토토 및와 같은 도구입니다.PG_BASEBACKUP내부적으로 사용하지만 타사 응용 프로그램에서도 사용할 수 있습니다. 복제 프로토콜에 대한 설명을 보려면PostgreSQL : 문서 : 개발 : 54.4. 토토 꽁 머니 복제 프로토콜.
건소에 민감한 다음 값이 지원됩니다.
True
, on
, 예
, 1
젠 토토은 물리적 복제 모드로 들어갑니다.
데이터베이스
젠 토토은 논리적 복제 모드로 이동하여에 지정된 데이터베이스에 젠 토토합니다.dbname
매개 변수.
false
, OFF
, 아니오
, 0
젠 토토은 일반적인 것입니다. 기본 동작입니다.
물리적 또는 논리적 복제 모드에서는 간단한 쿼리 프로토콜 만 사용할 수 있습니다.
gssencmode
#이 옵션은 보안 우선 순위 여부를 결정합니다gssTCP/IP 젠 토토은 서버와 협상됩니다. 세 가지 모드가 있습니다 :
비활성화
비 만 시도해보십시오.GSSAPI-암호화 된 젠 토토
선호
(기본값)있는 경우GSSAPI자격 증명이 존재합니다 (즉, 자격 증명 캐시에서), 먼저 aGSSAPI-암호화 된 젠 토토; 실패하거나 자격 증명이 없으면 비 시도해보십시오.GSSAPI암호화 된 젠 토토. 이것은 기본값입니다postgresqlGSSAPI지원.
요구
만 시도해GSSAPI-암호화 된 젠 토토
gssencmode
UNIX 도메인 소켓 통신에 대해 무시됩니다. 만약에postgresqlgssapi 지원없이 편집되어요구
옵션은 오류가 발생하지만선호
허용되지만libpq실제로 a를 시도하지 않을 것입니다GSSAPI-암호화 된 젠 토토.
sslmode
#이 옵션은 보안 우선 순위 여부를 결정합니다SSLTCP/IP 젠 토토은 서버와 협상됩니다. 6 가지 모드가 있습니다 :
비활성화
비 만 시도해보십시오.SSLConnection
허용
먼저 비 시도SSL젠 토토; 그것이 실패하면 시도해보십시오SSLConnection
선호
(기본값)첫 번째 시도SSL젠 토토; 실패하면 비 시도해보십시오.SSLConnection
요구
만 시도SSL젠 토토. 루트 CA 파일이있는 경우 IT와 같은 방식으로 인증서를 확인하십시오.verify-ca
지정되었습니다
verify-ca
만 시도SSL젠 토토 및 신뢰할 수있는 인증서에 의해 서버 인증서가 발행되었는지 확인하십시오 (CA)
verify-full
만 시도SSL젠 토토, 신뢰할 수있는 서버 인증서가 발행되었는지 확인CA그리고 요청 된 서버 호스트 이름은 인증서에서이를 일치시킵니다
참조섹션 32.19이러한 옵션의 작동 방식에 대한 자세한 설명은
sslmode
UNIX 도메인 소켓 통신에 대해 무시됩니다. 만약에postgresql옵션을 사용하여 SSL 지원없이 컴파일됩니다요구
, verify-ca
또는verify-full
옵션 중에 오류가 발생합니다허용
and선호
허용되지만libpq실제로 시도하지 않을 것입니다SSL젠 토토.
ifGSSAPI암호화가 가능합니다.SSL암호화, 값에 관계없이sslmode
. 강제 사용SSL작동하는 환경에서의 암호화GSSAPI인프라 (예 : Kerberos 서버), 또한 설정gssencmode
to비활성화
.
요구 사항
#이 옵션은에 찬성하여 더 이상 사용되지 않습니다.sslmode
설정.
1으로 설정된 경우, anSSL서버에 대한 젠 토토이 필요합니다 (이것은 동일합니다sslmode
요구
). libpq서버가 수락하지 않으면 젠 토토을 거부합니다SSL젠 토토. 0으로 설정된 경우 (기본값),libpq서버와 젠 토토 유형을 협상합니다 (동등한sslmode
선호
). 이 옵션은 만 사용할 수 있습니다.postgresqlSSL 지원으로 컴파일됩니다.
SSLNEGOTIATION
#이 옵션은 SSL을 사용하는 경우 SSL 암호화가 서버와 협상되는 방법을 제어합니다. 기본값Postgres
모드, 클라이언트는 먼저 SSL이 지원되는지 서버에 묻습니다. 안에Direct
모드에서 클라이언트는 TCP/IP 젠 토토을 설정 한 후 직접 표준 SSL 핸드 셰이크를 시작합니다. 전통적인postgresql프로토콜 협상은 다른 서버 구성으로 가장 유연합니다. 서버가 Direct를 지원하는 것으로 알려진 경우SSLConnections 후 후자는 하나의 왕복 지연 시간을 줄이려고 젠 토토 대기 시간을 줄이고 프로토콜 농업 SSL 네트워크 도구를 사용할 수 있습니다. 직접 SSL 옵션이에 도입되었습니다.postgresql버전 17.
Postgres
공연postgresql프로토콜 협상. 옵션이 제공되지 않은 경우 기본값입니다.
Direct
TCP/IP 젠 토토을 설정 한 후 직접 SSL 핸드 셰이크를 시작하십시오. 이것은 만 허용됩니다.sslmode = require
이상 약한 설정으로 인해 서버가 직접 SSL 핸드 셰이크를 지원하지 않을 때 의도하지 않은 설정이 일반 텍스트 인증으로 이어질 수 있기 때문에.
sslcompression
#1으로 설정하면 SSL 젠 토토을 통해 전송 된 데이터가 압축됩니다. 0으로 설정하면 압축이 비활성화됩니다.
SSL 압축은 오늘날 불안한 것으로 간주되며 더 이상 사용이 권장되지 않습니다.OpenSSL1.1.0 비활성화 압축 압축 및 기본적으로 많은 운영 체제 분포가 이전 버전에서도 비활성화되었으므로 서버가 압축을 허용하지 않으면이 매개 변수를 설정하지 않습니다..postgresql14 백엔드에서 완전히 비활성화 된 압축.
보안이 주요 관심사가 아닌 경우 네트워크가 병목 현상 인 경우 압축을 개선 할 수 있습니다. CPU 성능이 제한 요소 인 경우 압축을 비활성화하면 응답 시간과 처리량이 향상 될 수 있습니다.
SSLCERT
#이 매개 변수는 클라이언트 SSL 인증서의 파일 이름을 지정하여 기본값을 대체합니다~/.postgresql/postgresql.crt
. 이 매개 변수는 SSL 젠 토토이 이루어지지 않으면 무시됩니다.
SSLKEY
#이 매개 변수는 클라이언트 인증서에 사용되는 비밀 키 위치를 지정합니다. 기본값 대신 사용될 파일 이름을 지정할 수 있습니다~/.postgresql/postgresql.key
또는 외부에서 얻은 키를 지정할 수 있습니다“엔진”(엔진은OpenSSL로드 가능한 모듈). 외부 엔진 사양은 콜론 구분 된 엔진 이름과 엔진 별 키 식별자로 구성되어야합니다.
SSLPASSWORD
#이 매개 변수는 지정된 비밀 키에 대한 비밀번호를 지정합니다SSLKEY
, 인터랙티브 인증서 입력이 실용적이지 않은 경우에도 디스크에 암호화 된 양식에 클라이언트 인증서 개인 키를 저장할 수 있습니다.
비어 있지 않은 값 으로이 매개 변수를 지정하면PEM 패스 문구 입력 :
프롬프트OpenSSL암호화 된 클라이언트 인증서 키가 제공 될 때 기본적으로 방출됩니다libpq
.
키가 암호화되지 않으면이 매개 변수는 무시됩니다. 매개 변수는에 의해 지정된 키에 영향을 미치지 않습니다.OpenSSL엔진이 사용하지 않는 한 엔진OpenSSL프롬프트에 대한 암호 콜백 메커니즘
이 옵션과 동등한 환경 변수가 없으며, 그것을 찾아야 할 시설이 없습니다.pgpass
. 서비스 파일 젠 토토 정의에서 사용할 수 있습니다.OpenSSLPKCS#11 또는 USB 암호화 오프로드 장치와 같은 엔진 및 도구
SSLCERTMODE
#이 옵션은 클라이언트 인증서가 서버로 전송 될 수 있는지 여부와 서버가 요청 해야하는지 여부를 결정합니다. 세 가지 모드가 있습니다 :
비활성화
클라이언트 인증서는 사용 가능한 경우에도 전송되지 않습니다 (기본 위치이거나 remureSSLCERT).
허용
(기본값)서버가 하나를 요청하고 클라이언트가 보내야 할 경우 인증서가 전송 될 수 있습니다.
요구
서버필수인증서를 요청하십시오. 클라이언트가 인증서를 보내지 않고 서버가 클라이언트를 성공적으로 인증하면 젠 토토이 실패합니다.
sslcertmode = require
서버가 인증서를 올바르게 확인하고 있다는 보장이 없기 때문에 추가 보안을 추가하지 않습니다. PostgreSQL 서버는 일반적으로 고객에게 검증 여부에 관계없이 클라이언트에게 TLS 인증서를 요청합니다.
SSLROOTCERT
#이 매개 변수는 SSL 인증서를 포함하는 파일의 이름을 지정합니다 (CA) 인증서. 파일이 존재하면 서버의 인증서는이 당국 중 하나가 서명하도록 확인됩니다.~/.postgresql/root.crt
.
특별 가치System
대신 지정 될 수 있으며,이 경우 시스템의 신뢰할 수있는 CA 루트가로드됩니다. 이러한 루트 인증서의 정확한 위치는 SSL 구현 및 플랫폼마다 다릅니다.OpenSSL특히, 위치는에 의해 추가로 수정 될 수 있습니다.SSL_CERT_DIR
andSSL_CERT_FILE
환경 변수.
사용시SSLROOTCERT = SYSTEM
, 기본값sslmode
verify-full
, 약한 설정은 오류가 발생합니다. 대부분의 경우 누군가가 제어하는 호스트 이름에 대해 시스템에서 신뢰하는 인증서를 얻는 것은 사소한 일입니다.verify-ca
그리고 모든 약한 모드는 쓸모가 없습니다.
마법System
값은 동일한 이름의 로컬 인증서 파일보다 우선합니다. 어떤 이유로이 상황에서 자신을 발견하면와 같은 대체 경로를 사용하십시오.sslrootcert =./system
대신.
SSLCRL
#이 매개 변수는 SSL Server 인증서 취소 목록 (CRL)의 파일 이름을 지정합니다. 이 파일에 나열된 인증서가 존재하는 경우 서버의 인증서를 인증하려고 시도하면서 거부됩니다.SSLCRLNORsslcrldir설정 되었고이 설정은로 간주됩니다.~/.postgresql/root.crl
.
sslcrldir
#이 매개 변수는 SSL 서버 인증서 취소 목록 (CRL)의 디렉토리 이름을 지정합니다. 이 디렉토리의 파일에 나열된 인증서가 존재하는 경우 서버의 인증서를 인증하려고 시도하면서 거부됩니다.
디렉토리는와 함께 준비해야합니다.OpenSSL명령OpenSSL RHASH
또는C_RHOSH
. 자세한 내용은 문서를 참조하십시오.
둘 다SSLCRL
andsslcrldir
함께 지정할 수 있습니다.
SSLSNI
#1으로 설정된 경우 (기본값) LibPQ는 TLS Extension을 설정합니다“서버 이름 표시” (SNI) SSL 가능 젠 토토에서. 이 매개 변수를 0으로 설정하면 꺼져 있습니다.
SSL-AWARE 프록시에서 서버 이름 표시를 사용할 수 있습니다. (프록시가 PostgreSQL 프로토콜 핸드 셰이크를 인식하지 않는 한 설정이 필요합니다SSLNEGOTIATION
toDirect
.) 그러나SNI네트워크 트래픽에서 대상 호스트 이름이 ClearText로 표시되므로 경우에 따라 바람직하지 않을 수 있습니다.
요구 사항
#이 매개 변수는 서버의 작동 시스템 사용자 이름을 지정합니다 (예 :요구 사항 = Postgres
. Unix-Domain 소켓 젠 토토을 만들 때이 매개 변수가 설정되면 클라이언트는 젠 토토 시작시 서버 프로세스가 지정된 사용자 이름으로 실행되는지 확인합니다./tmp
또는 다른 공개적으로 쓰기 가능한 위치, 모든 사용자가 서버를 청취 할 수 있습니다. 이 매개 변수를 사용하여 신뢰할 수있는 사용자가 실행하는 서버에 젠 토토되어 있는지 확인하십시오.)이 옵션은의 플랫폼에서만 지원됩니다.피어
인증 방법이 구현되었습니다. 보다스포츠 토토 베트맨 : 문서 : 개발 : 20.9. 피어 인증.
SSL_MIN_PROTOCOL_VERSION
#이 매개 변수는 젠 토토을 허용하기 위해 최소 SSL/TLS 프로토콜 버전을 지정합니다. 유효한 값은TLSV1
, TLSV1.1
, TLSV1.2
andTLSV1.3
. 지원되는 프로토콜은의 버전에 따라 다릅니다.OpenSSL가장 현대적인 프로토콜 버전을 지원하지 않는 오래된 버전. 지정되지 않은 경우 기본값은입니다.TLSV1.2
,이 글을 쓰는 시점에서 업계 모범 사례를 충족시키는 것.
min_protocol_version
#젠 토토을 허용하기 위해 최소 프로토콜 버전을 지정합니다. 기본값은의 모든 버전을 허용하는 것입니다.postgresqlLIBPQ에서 지원하는 프로토콜은 현재 의미3.0
. 서버가 최소한이 프로토콜 버전을 지원하지 않으면 젠 토토이 닫힙니다.
현재 지원되는 값은입니다.3.0
, 3.2
및최신
. 그만큼최신
값은 현재 사용중인 LIBPQ 버전에서 지원하는 최신 프로토콜 버전과 동일합니다.3.2
.
max_protocol_version
#서버에서 요청할 프로토콜 버전을 지정합니다. 기본값은 버전을 사용하는 것입니다3.0
의postgresql프로토콜, Connection String이 더 높은 프로토콜 버전에 의존하는 기능을 지정하지 않는 한, LIBPQ에서 지원하는 최신 버전이 사용됩니다. 서버가 클라이언트가 요청한 프로토콜 버전을 지원하지 않으면 젠 토토이 서버가 지원하는 더 낮은 마이너 프로토콜 버전으로 자동 다운 그레이드됩니다.pqprotocolversion
어떤 정확한 프로토콜 버전이 협상되었는지 알아 보려면
현재 지원되는 값은입니다.3.0
, 3.2
및최신
. 그만큼최신
값은 현재 사용중인 LIBPQ 버전에서 지원하는 최신 프로토콜 버전과 동일합니다.3.2
.
ssl_max_protocol_version
#이 매개 변수는 젠 토토을 허용하기 위해 최대 SSL/TLS 프로토콜 버전을 지정합니다. 유효한 값은TLSV1
, TLSV1.1
, TLSV1.2
andTLSV1.3
. 지원되는 프로토콜은의 버전에 따라 다릅니다.OpenSSL가장 현대적인 프로토콜 버전을 지원하지 않는 오래된 버전. 설정하지 않으면이 매개 변수는 무시되며 젠 토토은 백엔드에 의해 정의 된 최대 경계를 사용합니다.
krbsrvname
#GSSAPI를 인증 할 때 사용할 Kerberos 서비스 이름. 이는 Kerberos 인증을 위해 서버 구성에 지정된 서비스 이름과 일치해야합니다.PostgreSQL : 문서 : 개발 : 20.6. GSSAPI 토토 사이트 추천.) 기본값은 일반적으로Postgres
, 그러나 건축 할 때 변경할 수 있습니다postgresql-with-krb-srvnam
옵션구성. 대부분의 환경 에서이 매개 변수는 변경 될 필요가 없습니다.Postgres
).
gsslib
#GSSAPI 인증에 사용할 GSS 라이브러리. 현재 이는 GSSAPI 및 SSPI 지원이 모두 포함 된 Windows 빌드를 제외하고는 무시됩니다.GSSAPI
LIBPQ가 기본 SSPI 대신 인증을 위해 GSSAPI 라이브러리를 사용하게합니다.
GSSDELEGATION
#Forward (Delegate) GSS 자격 증명서. 기본값은0
이는 자격 증명이 서버로 전달되지 않음을 의미합니다. 이것을 설정1
가능한 경우 자격 증명을 전달합니다.
scram_client_key
#Base64에 인코딩 된 SCRAM 클라이언트 키. 이것은 외국 데이터 포장지 또는 유사한 미들웨어에서 사용할 수 있으며 통과 스크램 인증을 가능하게합니다.섹션 F.38.1.10그러한 구현의 경우. 사용자 또는 클라이언트 응용 프로그램이 직접 지정하는 것은 아닙니다.
scram_server_key
#Base64에 인코딩 된 SCRAM 서버 키. 이것은 외국 데이터 포장지 또는 유사한 미들웨어에서 사용할 수 있으며 통과 스크램 인증을 가능하게합니다.섹션 F.38.1.10그러한 구현의 경우. 사용자 또는 클라이언트 응용 프로그램이 직접 지정하는 것은 아닙니다.
서비스
#추가 매개 변수에 사용할 서비스 이름. 에서 서비스 이름을 지정합니다서비스
추가 젠 토토 매개 변수를 보유합니다. 이를 통해 응용 프로그램은 서비스 이름 만 지정하여 젠 토토 매개 변수를 중앙에서 유지할 수 있습니다.PostgreSQL : 문서 : 개발 : 32.17. 연결 서비스 토토 사이트 순위.
target_session_attrs
#이 옵션은 세션에 허용 가능한 특정 속성이 있어야하는지 여부를 결정합니다. 일반적으로 여러 호스트 이름과 함께 사용하여 여러 호스트 중에서 첫 번째 허용 가능한 대안을 선택합니다.
any
(기본값)성공적인 젠 토토이 허용됩니다
읽기 쓰기
세션은 기본적으로 읽기 쓰기 트랜잭션을 수락해야합니다 (즉, 서버는 핫 스탠드 모드에 있지 않아야하며default_transaction_read_only
매개 변수는OFF
)
읽기 전용
세션은 기본적으로 읽기 쓰기 트랜잭션을 수락해서는 안됩니다 (대화)
기본
서버는 대기 모드에 있지 않아야합니다
대기
서버는 핫 스탠드 모드에 있어야합니다
선호하는 스탠드비
먼저 대기 서버를 찾으십시오. 그러나 나열된 호스트 중 어느 것도 대기 서버 인 경우any
모드
load_balance_hosts
#클라이언트가 사용 가능한 호스트 및 주소에 젠 토토하려는 순서를 제어합니다. 젠 토토 시도가 성공하면 다른 호스트와 주소는 시도되지 않습니다.target_session_attrs예를 들어 대기 서버의 균형을로드합니다. 성공적으로 젠 토토되면 반환 된 젠 토토의 후속 쿼리가 모두 동일한 서버로 전송됩니다.
비활성화
(기본값)호스트 전체에 대한로드 밸런싱이 수행되지 않습니다. 호스트는 제공되는 순서대로 시도되며 주소는 DNS 또는 호스트 파일로부터받은 순서대로 시도됩니다.
random
호스트 및 주소는 임의 순서로 시도됩니다. 이 값은 다른 기계에서 여러 젠 토토을 동시에 열 때 주로 유용합니다.postgresql서버.
무작위로드 밸런싱은 임의의 특성으로 인해 완전히 균일 한 분포를 초래하지 않지만 통계적으로 매우 가까워집니다. 여기서 중요한 측면 중 하나는이 알고리즘이 두 가지 수준의 임의 선택 선택을 사용한다는 것입니다. 먼저 호스트는 임의 순서로 해결됩니다.
이 값을 사용하면 합리적인 값을 구성하는 것이 좋습니다Connect_Timeout. 그렇다면로드 밸런싱에 사용되는 노드 중 하나가 응답하지 않으면 새 노드가 시도됩니다.
OAUTH_ISSUER
#서버가 젠 토토을 위해 OAUTH 토큰을 요청하는 경우 신뢰할 수있는 발행자의 HTTPS URL. 이 매개 변수는 모든 Oauth 젠 토토에 필요합니다.발행자
설정PostgreSQL : 문서 : 개발 : 20.15. 토토 사이트 순위 인증/인증.
표준 인증 핸드 셰이크의 일부로libpq서버에 A를 요청합니다발견 문서 :OAUTH 구성 매개 변수 세트를 제공하는 URL. 서버는의 구성 요소에서 직접 구성된 URL을 제공해야합니다.OAUTH_ISSUER
,이 값은 검색 문서 자체에 선언 된 발행자 식별자와 정확히 일치해야합니다. 그렇지 않으면 젠 토토이 실패합니다. 클래스를 방지하는 데 필요합니다"믹스 업 공격"Oauth 클라이언트에서.
당신도 명시 적으로 설정할 수도 있습니다OAUTH_ISSUER
to the/.well-known/
OAUTH 발견에 사용되는 URI. 이 경우 서버가 다른 URL을 요청하면 젠 토토이 실패하지만 ACustom Oauth 흐름이전에 캐시 된 토큰을 사용하여 표준 핸드 셰이크 속도를 높일 수 있습니다. (이 경우 권장됩니다.oauth_scope클라이언트가 서버에 올바른 범위 설정을 요청할 기회가없고 토큰의 기본 범위를 젠 토토하기에 충분하지 않을 수 있으므로 설정하십시오.)libpq현재 잘 알려진 엔드 포인트를 지원합니다.
/.well-nown/openid-configuration
/.well-known/outh-authorization-server
발행자는 OAUTH 젠 토토 핸드 셰이크 중에 고도로 특권이 있습니다. 경험상, 서버에 대한 액세스를 처리 할 URL의 운영자를 신뢰하지 않거나 직접 사칭하려면 URL을로 신뢰해서는 안됩니다.OAUTH_ISSUER
.
oauth_client_id
#인증 서버에서 발행 한 OAUTH 2.0 클라이언트 식별자. 인 경우postgresqlServerPostgreSQL : 문서젠 토토을 위해 (그리고 그렇지 않은 경우Custom Oauth Hook하나를 제공하도록 설치됩니다.이 매개 변수를 설정해야합니다. 그렇지 않으면 젠 토토이 실패합니다.
oauth_client_secret
#OAUTH 인증 서버에 연락 할 때 사용하려면 클라이언트 비밀번호를 사용할 수 있습니다. 이 매개 변수가 필요한지 여부는 Oauth 제공자에 의해 결정됩니다.
oauth_scope
#허가 서버로 전송 된 액세스 요청의 범위는 (아마도 비어있는) 공간 분리 된 OAuth 범위 식별자 목록으로 지정됩니다. 이 매개 변수는 선택 사항이며 고급 사용을위한 것입니다.
일반적으로 클라이언트는에서 적절한 범위 설정을 얻습니다.postgresql서버. 이 매개 변수를 사용하면 서버의 요청 된 범위 목록은 무시됩니다.
빈 스코프 목록의 의미는 제공자에 의존합니다. OAUTH 인증 서버는 "기본 범위"가있는 토큰을 발행하도록 선택할 수 있습니다.