다음 함수는 연결을 처리합니다.PostgreSQL백엔드 서버. 애플리케이션 프로그램에는 한 번에 여러 백엔드 연결이 열려 있을 수 있습니다. (그렇게 하는 이유 중 하나는 둘 이상의 데이터베이스에 액세스하기 위한 것입니다.) 각 연결은 다음으로 표시됩니다.PGconn함수에서 얻은 객체PQconnectdb, PQconnectdbParams또는PQsetdb로그인. 할당할 메모리가 너무 적은 경우를 제외하고 이러한 함수는 항상 null이 아닌 객체 포인터를 반환합니다.PGconn객체.PQ상태연결 객체를 통해 쿼리가 전송되기 전에 성공적인 연결에 대한 반환 값을 확인하기 위해 함수를 호출해야 합니다.
신뢰할 수 없는 스포츠 토토 베트맨자가 다음을 채택하지 않은 데이터베이스에 액세스할 수 있는 경우보안 스키마 스포츠 토토 베트맨 패턴, 공개적으로 쓰기 가능한 스키마를 제거하여 각 세션을 시작합니다.검색_경로. 매개변수 키워드를 설정할 수 있습니다.옵션값에-csearch_path=. 또는 발행할 수도 있습니다.PQexec(연결 후. 이 고려 사항은 다음에만 국한되지 않습니다.libpq; 임의의 SQL 명령을 실행하기 위한 모든 인터페이스에 적용됩니다.콘, "SELECT pg_catalog.set_config('search_path', '', false)")
Unix에서는 열린 libpq 연결로 프로세스를 분기하면 상위 프로세스와 하위 프로세스가 동일한 소켓과 운영 체제 리소스를 공유하기 때문에 예측할 수 없는 결과가 발생할 수 있습니다. 이러한 이유로 이러한 사용은 권장되지 않습니다.실행하위 프로세스에서 새 실행 파일을 로드하는 것은 안전합니다.
PQconnectdbParams #데이터베이스 서버에 새로운 연결을 만듭니다.
PGconn *PQconnectdbParams(const char * const *keywords,
const char * const *값,
int 확장_db이름);
이 함수는 두 매개변수에서 가져온 매개변수를 스포츠 토토 베트맨하여 새 데이터베이스 연결을 엽니다.NULL-종료된 어레이. 첫 번째,키워드은 문자열 배열로 정의되며 각 문자열은 키워드입니다. 두 번째,값, 각 키워드의 값을 제공합니다. 달리PQsetdb로그인아래에서 매개변수 세트는 함수 서명을 변경하지 않고 확장될 수 있으므로 이 함수(또는 비차단 아날로그)를 사용합니다.PQconnectStartParams그리고PQconnectPoll)는 새로운 애플리케이션 프로그래밍에 선호됩니다.
현재 인식된 매개변수 키워드는 다음에 나열되어 있습니다.섹션 32.1.2.
전달된 배열은 모든 기본 매개변수를 스포츠 토토 베트맨하기 위해 비어 있거나 하나 이상의 매개변수 설정을 포함할 수 있습니다. 길이가 일치해야 합니다. 처리가 처음부터 중지됩니다.NULL항목키워드배열. 또한 만약에값비-와 연관된 항목NULL 키워드항목은NULL또는 빈 문자열인 경우 해당 항목은 무시되고 다음 배열 항목 쌍으로 처리가 계속됩니다.
언제expand_dbname0이 아닌 경우 첫 번째 값db이름키워드가 다음과 같은지 확인합니다.연결 문자열. 그렇다면 그렇군요“확장”문자열에서 추출된 개별 연결 매개변수로. 값에 등호()가 포함된 경우 데이터베이스 이름이 아닌 연결 문자열로 간주됩니다.=) 또는 URI 체계 지정자로 시작됩니다. (연결 문자열 형식에 대한 자세한 내용은 다음에 나와 있습니다.섹션 32.1.1.) 첫 번째 발생만db이름이런 방식으로 처리됩니다. 모든 후속db이름매개변수는 일반 데이터베이스 이름으로 처리됩니다.
일반적으로 매개변수 배열은 처음부터 끝까지 처리됩니다. 키워드가 반복되면 마지막 값(즉,NULL또는 비어 있음)이 사용됩니다. 이 규칙은 특히 연결 문자열에서 발견된 키워드가에 나타나는 키워드와 충돌할 때 적용됩니다.키워드배열. 따라서 프로그래머는 배열 항목을 연결 문자열에서 가져온 값으로 재정의하거나 재정의할 수 있는지 여부를 결정할 수 있습니다. 확장 앞에 나타나는 배열 항목db이름항목은 연결 문자열의 필드로 재정의될 수 있으며, 해당 필드는 다음에 나타나는 배열 항목으로 재정의됩니다.DB이름(그러나 해당 항목이 비어 있지 않은 값을 제공하는 경우에만 해당).
모든 배열 항목과 확장된 연결 문자열을 처리한 후 설정되지 않은 상태로 남아 있는 모든 연결 매개변수는 기본값으로 채워집니다. 설정되지 않은 매개변수의 해당 환경 변수(참조PostgreSQL : 문서 : 17 : 32.15. 환경 배트맨 토토)가 설정되면 해당 값이 스포츠 토토 베트맨됩니다. 환경 변수도 설정되지 않은 경우 매개변수에 내장된 기본값이 스포츠 토토 베트맨됩니다.
PQconnectdb #데이터베이스 서버에 새로운 연결을 만듭니다.
PGconn *PQconnectdb(const char *conninfo);
이 함수는 문자열에서 가져온 매개변수를 스포츠 토토 베트맨하여 새 데이터베이스 연결을 엽니다.콘인포.
전달된 문자열은 모든 기본 매개변수를 사용하기 위해 비어 있을 수 있습니다. 또는 공백으로 구분된 하나 이상의 매개변수 설정을 포함할 수 있습니다. 또는 다음을 포함할 수 있습니다.URI. 참조섹션 32.1.1자세한 내용은.
PQsetdb로그인 #데이터베이스 서버에 새로운 연결을 만듭니다.
PGconn *PQsetdbLogin(const char *pghost,
const char *pgport,
const char *pgoptions,
const char *pgtty,
const char *db이름,
const char *로그인,
const char *pwd);
이것은 다음의 전신입니다.PQconnectdb고정된 매개변수 세트를 스포츠 토토 베트맨합니다. 누락된 매개변수가 항상 기본값을 스포츠 토토 베트맨한다는 점을 제외하면 동일한 기능을 갖습니다. 쓰다NULL또는 기본값으로 설정될 고정 매개변수 중 하나에 대한 빈 문자열입니다.
만약에db이름포함=서명하거나 유효한 연결이 있음URI접두사, 다음과 같이 간주됩니다.콘인포문자열은 전달된 것과 똑같은 방식으로PQconnectdb, 나머지 매개변수는 지정된 대로 적용됩니다.PQconnectdbParams.
pgtty은 더 이상 스포츠 토토 베트맨되지 않으며 전달된 모든 값은 무시됩니다.
PQsetdb #데이터베이스 서버에 새로운 연결을 만듭니다.
PGconn *PQsetdb(char *pghost,
char *pgport,
char *pgoptions,
문자 *pgtty,
char *dbName);
이것은 호출하는 매크로입니다PQsetdb로그인에 대한 널 포인터 포함로그인그리고비밀번호매개변수. 아주 오래된 프로그램과의 호환성을 위해 제공됩니다.
PQconnectStartParamsPQconnectStartPQconnectPoll #PGconn *PQconnectStartParams(const char * const *키워드,
const char * const *값,
int 확장_db이름);
PGconn *PQconnectStart(const char *conninfo);
PostgresPollingStatusType PQconnectPoll(PGconn *conn);
이 세 가지 기능은 데이터베이스 서버에 대한 연결을 여는 데 사용되며 그렇게 하는 동안 원격 I/O에서 애플리케이션의 실행 스레드가 차단되지 않습니다. 이 접근 방식의 요점은 I/O가 완료될 때까지 기다리는 시간이 내부가 아닌 애플리케이션의 메인 루프에서 발생할 수 있다는 것입니다.PQconnectdbParams또는PQconnectdb따라서 애플리케이션은 다른 활동과 동시에 이 작업을 관리할 수 있습니다.
함께PQconnectStartParams, 데이터베이스 연결은에서 가져온 매개변수를 스포츠 토토 베트맨하여 이루어집니다.키워드그리고값배열 및 제어expand_dbname, 위에서 설명한 대로PQconnectdbParams.
함께PQconnectStart, 문자열에서 가져온 매개변수를 스포츠 토토 베트맨하여 데이터베이스 연결이 이루어집니다.콘인포위에 설명된 대로PQconnectdb.
둘 다 아님PQconnectStartParams아니요PQconnectStart아니요PQconnectPoll다양한 제한 사항이 충족되는 한 차단됩니다.
비차단 연결 요청을 시작하려면 다음을 호출하세요.PQconnectStart또는PQconnectStartParams. 결과가 null이면, 다음은libpq새로운 할당을 할 수 없습니다PGconn구조. 그렇지 않으면 유효한PGconn포인터가 반환됩니다(아직 데이터베이스에 대한 유효한 연결을 나타내지는 않지만). 다음 통화PQ상태(conn). 결과가 다음과 같다면CONNECTION_BAD, 연결 시도가 이미 실패했습니다. 일반적으로 잘못된 연결 매개변수로 인해 발생합니다.
만약PQconnectStart또는PQconnectStartParams성공, 다음 단계는 설문 조사입니다.libpq그래서 연결 순서를 진행할 수 있습니다. 스포츠 토토 베트맨PQsocket(콘)데이터베이스 연결의 기반이 되는 소켓의 설명자를 가져옵니다. (주의: 소켓이 동일하게 유지된다고 가정하지 마십시오.PQconnectPoll호출.) 다음과 같이 반복하세요: IfPQconnectPoll(conn)마지막 반환PGRES_POLLING_READING, 소켓이 읽을 준비가 될 때까지 기다립니다(다음으로 표시됨).선택(), 설문조사()또는 유사한 시스템 기능). 참고하세요PQsocketPoll설정을 추상화하여 상용구를 줄이는 데 도움이 될 수 있습니다.선택(2)또는설문조사(2)귀하의 시스템에서 스포츠 토토 베트맨할 수 있는 경우. 그럼 전화하세요PQconnectPoll(conn)다시. 반대로 만약에PQconnectPoll(conn)마지막 반환PGRES_POLLING_WRITING, 소켓이 쓸 준비가 될 때까지 기다린 후 호출PQconnectPoll(conn)다시. 첫 번째 반복에서, 즉 아직 전화하지 않은 경우PQconnectPoll, 마지막으로 반환된 것처럼 동작PGRES_POLLING_WRITING. 다음까지 이 루프를 계속하세요.PQconnectPoll(conn)반환PGRES_POLLING_FAILED, 연결 절차가 실패했음을 나타냄, 또는PGRES_POLLING_OK, 연결이 성공적으로 이루어졌음을 나타냅니다.
연결 중 언제든지 호출을 통해 연결 상태를 확인할 수 있습니다.PQ상태. 이 호출이 반환되는 경우CONNECTION_BAD, 연결 절차가 실패했습니다. 전화가 돌아오면CONNECTION_OK이면 연결이 준비된 것입니다. 이 두 상태는 모두 반환 값에서 동일하게 감지할 수 있습니다.PQconnectPoll, 위에 설명되어 있습니다. 비동기 연결 절차 중에(및 도중에만) 다른 상태가 발생할 수도 있습니다. 이는 연결 절차의 현재 단계를 나타내며 예를 들어 스포츠 토토 베트맨자에게 피드백을 제공하는 데 유용할 수 있습니다. 상태는 다음과 같습니다.
CONNECTION_STARTED #연결이 이루어지기를 기다리는 중입니다.
연결_만들음 #연결 정상; 보내기를 기다리고 있습니다.
CONNECTION_AWAITING_RESPONSE #서버의 응답을 기다리는 중입니다.
CONNECTION_AUTH_OK #인증을 받았습니다. 백엔드 시작이 완료되기를 기다리고 있습니다.
CONNECTION_SSL_STARTUP #SSL 암호화 협상 중.
CONNECTION_GSS_STARTUP #GSS 암호화 협상 중.
CONNECTION_CHECK_WRITABLE #연결이 쓰기 트랜잭션을 처리할 수 있는지 확인 중입니다.
CONNECTION_CHECK_STANDBY #대기 모드의 서버에 연결되어 있는지 확인 중입니다.
CONNECTION_CONSUME #연결 시 남은 응답 메시지를 모두 소모합니다.
이러한 상수는 (호환성을 유지하기 위해) 유지되지만 응용프로그램은 이러한 상수가 특정 순서로 발생하거나 전혀 의존해서는 안 되며 항상 문서화된 값 중 하나인 상태에 의존해서는 안 됩니다. 애플리케이션은 다음과 같은 작업을 수행할 수 있습니다.
스위치(PQstatus(conn))
사례 CONNECTION_STARTED:
Feedback = "연결 중...";
부서지다;
사례 CONNECTION_MADE:
Feedback = "서버에 연결되었습니다...";
부서지다;
.
.
.
기본값:
Feedback = "연결 중...";
그connect_timeout스포츠 토토 베트맨 시 연결 매개변수가 무시됩니다.PQconnectPoll; 과도한 시간이 경과했는지 여부를 결정하는 것은 애플리케이션의 책임입니다. 그렇지 않으면,PQconnectStart다음에 aPQconnectPoll루프는 다음과 같습니다.PQconnectdb.
언제든지 주의하세요PQconnectStart또는PQconnectStartParams널이 아닌 포인터를 반환합니다. 호출해야 합니다.PQfinish작업이 끝나면 구조 및 관련 메모리 블록을 폐기하기 위해. 연결 시도가 실패하거나 중단된 경우에도 이 작업을 수행해야 합니다.
PQsocketPoll #다음으로 검색된 연결의 기본 소켓 설명자를 폴링PQsocket. 이 함수의 주요 용도는 다음 문서에 설명된 연결 순서를 반복하는 것입니다.PQconnectStartParams.
typedef pg_int64 pg_usec_time_t;
int PQsocketPoll(int sock, int forRead, int forWrite,
pg_usec_time_t end_time);
이 함수는 파일 설명자 폴링을 수행하며 선택적으로 시간 초과가 포함됩니다. 만약에forRead이 0이 아닌 경우 소켓을 읽을 준비가 되면 함수가 종료됩니다. 만일forWrite이 0이 아닌 경우, 소켓이 쓰기 준비가 되면 함수가 종료됩니다.
시간 초과는 다음에 의해 지정됩니다.종료_시간, Unix epoch 이후 마이크로초 단위로 표시되는 대기를 중지하는 시간입니다(즉,time_t회 100만). 다음의 경우 시간 초과는 무한합니다.종료_시간is-1. end_time이 다음과 같은 경우 시간 초과가 즉시 발생합니다(차단 없음).0(또는 실제로는 지금 이전 어느 때라도). 시간 초과 값은 원하는 마이크로초 수를 결과에 추가하여 편리하게 계산할 수 있습니다.PQgetCurrentTimeUSec. 기본 시스템 호출의 정밀도는 마이크로초 미만일 수 있으므로 실제 지연이 부정확할 수 있습니다.
함수는 다음보다 큰 값을 반환합니다.0지정된 조건이 충족되면0시간 초과가 발생한 경우 또는-1오류가 발생한 경우. 오류는 다음을 확인하여 검색할 수 있습니다.errno(3)값. 두 경우 모두forRead그리고forWrite0이면 함수는 즉시 시간 초과 표시를 반환합니다.
PQsocketPoll다음 중 하나를 사용하여 구현됩니다.설문조사(2)또는선택(2), 플랫폼에 따라 다름. 참조폴린그리고폴아웃에서설문조사(2)또는readfds그리고writefds에서선택(2), 자세한 정보는.
PQconndefaults #기본 연결 옵션을 반환합니다.
PQconninfoOption *PQconndefaults(void);
typedef 구조체
char *키워드; /* 옵션의 키워드 */
char *envvar; /* 대체 환경 변수 이름 */
char *컴파일됨; /* 기본값으로 컴파일된 폴백 */
char *발; /* 옵션의 현재 값, 또는 NULL */
char *레이블; /* 연결 대화 상자의 필드 레이블 */
char *dispchar; /* 이 필드를 표시하는 방법을 나타냅니다.
연결 대화 상자에서. 값은 다음과 같습니다.
"" 입력된 값을 그대로 표시
"*" 비밀번호 필드 - 값 숨기기
"D" 디버그 옵션 - 기본적으로 표시되지 않음 */
int dispsize; /* 대화상자의 필드 크기(문자) */
PQconninfoOption;
연결 옵션 배열을 반환합니다. 이는 가능한 모든 것을 결정하는 데 사용될 수 있습니다.PQconnectdb옵션 및 현재 기본값. 반환 값은의 배열을 가리킵니다.PQconninfo옵션null이 있는 항목으로 끝나는 구조키워드포인터. 메모리를 할당할 수 없으면 널 포인터가 반환됩니다. 현재 기본값(발필드)는 환경 변수 및 기타 컨텍스트에 따라 달라집니다. 누락되거나 유효하지 않은 서비스 파일은 자동으로 무시됩니다. 호출자는 연결 옵션 데이터를 읽기 전용으로 처리해야 합니다.
옵션 배열을 처리한 후 다음으로 전달하여 해제하십시오.PQconninfoFree. 그렇지 않으면 호출할 때마다 소량의 메모리가 누출됩니다.PQconndefaults.
PQconninfo #실시간 연결에 사용되는 연결 옵션을 반환합니다.
PQconninfo옵션 *PQconninfo(PGconn *conn);
연결 옵션 배열을 반환합니다. 이는 가능한 모든 것을 결정하는 데 사용될 수 있습니다.PQconnectdb옵션 및 서버에 연결하는 데 사용된 값. 반환 값은의 배열을 가리킵니다.PQconninfo옵션null이 있는 항목으로 끝나는 구조키워드포인터. 위의 모든 참고사항은PQconndefaults다음 결과에도 적용PQconninfo.
PQconninfoParse #제공된 연결 문자열에서 구문 분석된 연결 옵션을 반환합니다.
PQconninfoOption *PQconninfoParse(const char *conninfo, char **errmsg);
연결 문자열을 구문 분석하고 결과 옵션을 배열로 반환합니다. 또는 반품NULL연결 문자열에 문제가 있는 경우. 이 함수는를 추출하는 데 사용할 수 있습니다.PQconnectdb39890_39975PQconninfo옵션null이 있는 항목으로 끝나는 구조키워드포인터.
모든 적법한 옵션이 결과 배열에 표시되지만PQconninfo옵션연결 문자열에 없는 옵션의 경우발다음으로 설정됨NULL; 기본값은 삽입되지 않습니다.
만약errmsg아닙니다NULL그러면*errmsg다음으로 설정됨NULL성공 시, 그렇지 않으면 amalloc40655_40722*errmsg다음으로 설정됨NULL및 반환할 함수NULL; 이는 메모리 부족 상태를 나타냅니다.)
옵션 배열을 처리한 후 다음으로 전달하여 해제하십시오.PQconninfoFree. 그렇지 않으면 호출할 때마다 일부 메모리가 누수됩니다.PQconninfoParse. 반대로 오류가 발생하면errmsg아닙니다NULL, 다음을 사용하여 오류 문자열을 해제해야 합니다.PQfreemem.
PQfinish #서버 연결을 종료합니다. 또한에서 사용하는 메모리를 해제합니다.PGconn객체.
void PQfinish(PGconn *conn);
서버 연결 시도가 실패하더라도 (다음으로 표시됨)PQ상태), 애플리케이션은 호출해야 합니다.PQfinish다음에서 사용하는 메모리를 해제합니다.PGconn객체.PGconn포인터는 이후에 다시 스포츠 토토 베트맨되어서는 안 됩니다.PQfinish호출되었습니다.
PQreset #서버와의 통신 채널을 재설정합니다.
void PQreset(PGconn *conn);
이 함수는 서버에 대한 연결을 닫고 이전에 사용된 것과 동일한 매개변수를 모두 사용하여 새 연결 설정을 시도합니다. 이는 작동 중인 연결이 끊어진 경우 오류 복구에 유용할 수 있습니다.
PQresetStartPQresetPoll #비차단 방식으로 서버와의 통신 채널을 재설정합니다.
int PQresetStart(PGconn *conn); PostgresPollingStatusType PQresetPoll(PGconn *conn);
이 함수는 서버에 대한 연결을 닫고 이전에 사용된 것과 동일한 매개변수를 모두 사용하여 새 연결 설정을 시도합니다. 이는 작동 중인 연결이 끊어진 경우 오류 복구에 유용할 수 있습니다. 그들은 다음과 다릅니다.PQreset(위)는 비차단 방식으로 작동한다는 점입니다. 이러한 함수에는 다음과 같은 제한이 적용됩니다.PQconnectStartParams, PQconnectStart그리고PQconnectPoll.
연결 재설정을 시작하려면 다음을 호출하세요.PQresetStart. 0을 반환하면 재설정이 실패한 것입니다. 1이 반환되면 다음을 사용하여 재설정을 폴링합니다.PQresetPoll다음을 사용하여 연결을 생성하는 것과 정확히 같은 방식으로PQconnectPoll.
PQpingParams #PQpingParams서버의 상태를 보고합니다. 다음과 동일한 연결 매개변수를 허용합니다.PQconnectdbParams, 위에 설명되어 있습니다. 서버 상태를 얻기 위해 올바른 스포츠 토토 베트맨자 이름, 비밀번호 또는 데이터베이스 이름 값을 제공할 필요는 없습니다. 그러나 잘못된 값이 제공되면 서버는 실패한 연결 시도를 기록합니다.
PGPing PQpingParams(const char * const *키워드,
const char * const *값,
int 확장_db이름);
함수는 다음 값 중 하나를 반환합니다:
PQPING_OK #서버가 실행 중이며 연결을 수락하는 것 같습니다.
PQPING_REJECT #서버가 실행 중이지만 연결을 허용하지 않는 상태(시작, 종료 또는 충돌 복구)입니다.
PQPING_NO_RESPONSE #서버에 접속할 수 없습니다. 이는 서버가 실행되고 있지 않거나, 지정된 연결 매개변수에 문제가 있거나(예: 잘못된 포트 번호), 네트워크 연결 문제(예: 방화벽이 연결 요청을 차단함)가 있음을 나타낼 수 있습니다.
PQPING_NO_ATTEMPT #제공된 매개변수가 분명히 부정확했거나 클라이언트측 문제(예: 메모리 부족)가 있었기 때문에 서버에 접속하려는 시도가 이루어지지 않았습니다.
PQping #PQ핑서버의 상태를 보고합니다. 다음과 동일한 연결 매개변수를 허용합니다.PQconnectdb, 위에 설명되어 있습니다. 서버 상태를 얻기 위해 올바른 스포츠 토토 베트맨자 이름, 비밀번호 또는 데이터베이스 이름 값을 제공할 필요는 없습니다. 그러나 잘못된 값이 제공되면 서버는 실패한 연결 시도를 기록합니다.
PGPing PQping(const char *conninfo);
반환 값은 다음과 동일합니다.PQpingParams.
PQsetSSLKeyPassHook_OpenSSL #PQsetSSLKeyPassHook_OpenSSL애플리케이션을 재정의할 수 있습니다.libpq's암호화된 클라이언트 인증서 키 파일의 기본 처리스포츠 토토 베트맨 중ssl비밀번호또는 대화형 메시지.
void PQsetSSLKeyPassHook_OpenSSL(PQsslKeyPassHook_OpenSSL_type 후크);
응용프로그램은 서명이 있는 콜백 함수에 대한 포인터를 전달합니다:
int callback_fn(char *buf, int 크기, PGconn *conn);
어떤libpq그런 다음 전화하겠습니다대신기본값PQdefaultSSLKeyPassHook_OpenSSL처리자. 콜백은 키의 비밀번호를 결정하고 이를 결과 버퍼에 복사해야 합니다.buf크기크기. 문자열은bufNull로 종료되어야 합니다. 콜백은 다음에 저장된 비밀번호의 길이를 반환해야 합니다.buf널 종결자를 제외합니다. 실패 시 콜백이 설정되어야 합니다.buf[0] = '\0'그리고 0을 반환합니다. 참조PQdefaultSSLKeyPassHook_OpenSSLinlibpq의 소스 코드 예시입니다.
스포츠 토토 베트맨자가 명시적인 키 위치를 지정한 경우 해당 경로는 다음과 같습니다.conn-sslkey콜백이 호출될 때. 기본 키 경로를 사용하는 경우에는 비어 있습니다. 엔진 지정자인 키의 경우, 다음을 사용할지 여부는 엔진 구현에 달려 있습니다.오픈SSL비밀번호 콜백을 사용하거나 자체 처리를 정의하세요.
앱 콜백은 처리되지 않은 사례를 위임하도록 선택할 수 있습니다.PQdefaultSSLKeyPassHook_OpenSSL또는 먼저 호출한 후 0이 반환되면 다른 것을 시도하거나 완전히 재정의하세요.
콜백해서는 안 됩니다예외가 있는 일반적인 흐름 제어를 탈출합니다.longjmp(...)등 정상적으로 반환되어야 합니다.
PQgetSSLKeyPassHook_OpenSSL #PQgetSSLKeyPassHook_OpenSSL현재 클라이언트 인증서 키 비밀번호 후크를 반환합니다. 또는NULL아무것도 설정되지 않은 경우.
PQsslKeyPassHook_OpenSSL_type PQgetSSLKeyPassHook_OpenSSL(void);
여러libpq함수는 스포츠 토토 베트맨자가 지정한 문자열을 구문 분석하여 연결 매개변수를 얻습니다. 이러한 문자열에는 일반 키워드/값 문자열과 URI라는 두 가지 형식이 허용됩니다. URI는 일반적으로 다음과 같습니다.RFC 3986, 단, 아래에 자세히 설명된 대로 다중 호스트 연결 문자열이 허용된다는 점은 제외합니다.
키워드/값 형식에서 각 매개변수 설정은 다음과 같은 형식입니다.키워드 = 값, 설정 사이에 공백이 있습니다. 설정의 등호 주위에 있는 공백은 선택 사항입니다. 빈 값이나 공백이 포함된 값을 쓰려면 작은따옴표로 묶습니다. 예를 들어키워드 = '값'. 값 내의 작은따옴표와 백슬래시는 백슬래시로 이스케이프해야 합니다. 즉,\'그리고\\.
예:
호스트=localhost 포트=5432 dbname=mydb connect_timeout=10
인식된 매개변수 키워드는 다음에 나열되어 있습니다.섹션 32.1.2.
연결의 일반 형식URI다음과 같습니다:
postgresql://[userspec@][호스트 사양][/db이름][?paramspec] 어디에서userspec다음과 같습니다:스포츠 토토 베트맨자[:비밀번호] 그리고hostspec다음과 같습니다: [호스트][:포트][,...] 그리고paramspec다음과 같습니다:이름=값[&...]
그URI체계 지정자는 다음 중 하나일 수 있습니다.postgresql://또는postgres://. 나머지 각각URI부분은 선택사항입니다. 다음 예는 유효한 것을 보여줍니다.URI구문:
postgresql:// postgresql://localhost postgresql://localhost:5433 postgresql://localhost/mydb postgresql://user@localhost postgresql://스포츠 토토 베트맨자:비밀@localhost postgresql://other@localhost/otherdb?connect_timeout=10&application_name=myapp postgresql://host1:123,host2:456/somedb?target_session_attrs=any&application_name=myapp
일반적으로 계층 구조 부분에 나타나는 값URI또는 명명된 매개변수로 제공될 수 있습니다. 예를 들면:
postgresql:///mydb?host=localhost&port=5433
모든 명명된 매개변수는 다음에 나열된 키워드와 일치해야 합니다.섹션 32.1.2, JDBC 연결과의 호환성을 위한 경우 제외URIs, 인스턴스ssl=true다음으로 번역됩니다sslmode=require.
연결URI다음으로 인코딩해야 함퍼센트 인코딩부분에 특별한 의미가 있는 기호가 포함된 경우. 다음은 등호()가 있는 예입니다.=)은로 대체됩니다.%3D그리고 공백 문자%20:
postgresql://user@localhost:5433/mydb?options=-c%20synchronous_commit%3Doff
호스트 부분은 호스트 이름 또는 IP 주소일 수 있습니다. IPv6 주소를 지정하려면 대괄호로 묶습니다.
postgresql://[2001:db8::1234]/database
호스트 부분은 매개변수에 설명된 대로 해석됩니다.호스트. 특히, 호스트 부분이 비어 있거나 절대 경로 이름처럼 보이면 Unix 도메인 소켓 연결이 선택되고, 그렇지 않으면 TCP/IP 연결이 시작됩니다. 그러나 슬래시는 URI의 계층 부분에서 예약된 문자입니다. 따라서 비표준 Unix 도메인 소켓 디렉터리를 지정하려면 URI의 호스트 부분을 생략하고 호스트를 명명된 매개변수로 지정하거나 URI의 호스트 부분에 있는 경로를 퍼센트 인코딩하세요.
postgresql:///dbname?host=/var/lib/postgresql postgresql://%2Fvar%2Flib%2Fpostgresql/dbname
단일 URI에서 각각 선택적 포트 구성 요소가 있는 여러 호스트 구성 요소를 지정할 수 있습니다. 형식의 URIpostgresql://host1:port1,host2:port2,host3:port3/다음 형식의 연결 문자열과 동일합니다.호스트=호스트1,호스트2,호스트3 포트=포트1,포트2,포트3. 아래에 자세히 설명된 대로 연결이 성공적으로 설정될 때까지 각 호스트가 차례로 시도됩니다.
연결할 여러 호스트를 지정하여 주어진 순서대로 시도할 수 있습니다. 키워드/값 형식에서는호스트, 호스트주소및포트옵션은 쉼표로 구분된 값 목록을 허용합니다. 지정된 각 옵션에는 동일한 수의 요소가 제공되어야 합니다. 예를 들어 첫 번째hostaddr첫 번째 호스트 이름, 두 번째에 해당호스트주소두 번째 호스트 이름 등에 해당합니다. 단, 1개만인 경우는 예외로 합니다.포트지정되면 모든 호스트에 적용됩니다.
연결 URI 형식에서는 여러 개 나열할 수 있습니다.호스트:포트다음에서 쉼표로 구분된 쌍호스트URI의 구성요소입니다.
어느 형식이든 단일 호스트 이름은 여러 네트워크 주소로 변환될 수 있습니다. 이에 대한 일반적인 예는 IPv4와 IPv6 주소가 모두 있는 호스트입니다.
여러 호스트가 지정되거나 단일 호스트 이름이 여러 주소로 변환되면 성공할 때까지 모든 호스트와 주소가 순서대로 시도됩니다. 어떤 호스트에도 연결할 수 없으면 연결이 실패합니다. 연결이 성공적으로 설정되었지만 인증이 실패하면 목록에 있는 나머지 호스트는 시도되지 않습니다.
비밀번호 파일을 사용하는 경우, 호스트마다 다른 비밀번호를 가질 수 있습니다. 다른 모든 연결 옵션은 목록의 모든 호스트에 대해 동일합니다. 예를 들어 호스트마다 다른 스포츠 토토 베트맨자 이름을 지정하는 것은 불가능합니다.
현재 인식되는 매개변수 키워드는 다음과 같습니다:
호스트 #연결할 호스트의 이름.호스트 이름이 절대 경로 이름처럼 보이면 TCP/IP 통신이 아닌 Unix 도메인 통신을 지정합니다. 값은 소켓 파일이 저장되는 디렉터리의 이름입니다. (Unix에서는 절대 경로 이름이 슬래시로 시작됩니다. Windows에서는 드라이브 문자로 시작하는 경로도 인식됩니다.) 호스트 이름이@, 추상 네임스페이스에서 Unix 도메인 소켓으로 사용됩니다(현재 Linux 및 Windows에서 지원됨). 기본 동작은 다음과 같습니다.호스트지정되지 않았거나 비어 있으면 Unix 도메인 소켓에 연결하는 것입니다.in/tmp(또는 언제 지정된 소켓 디렉토리든지PostgreSQL건축되었습니다). Windows에서는 기본값은 다음에 연결하는 것입니다.로컬호스트.
쉼표로 구분된 호스트 이름 목록도 허용됩니다. 이 경우 목록의 각 호스트 이름이 순서대로 시도됩니다. 목록의 빈 항목은 위에서 설명한 대로 기본 동작을 선택합니다. 참조섹션 32.1.1.3자세한 내용은.
hostaddr #연결할 호스트의 숫자 IP 주소입니다. 이는 표준 IPv4 주소 형식이어야 합니다(예:172.28.40.9. 제품이 IPv6을 지원하는 경우 해당 주소를 사용할 수도 있습니다. 이 매개변수에 비어 있지 않은 문자열이 지정되면 TCP/IP 통신이 항상 사용됩니다. 이 매개변수를 지정하지 않으면 값은호스트해당 IP 주소를 찾기 위해 검색됩니다. 또는 만약호스트IP 주소를 지정하면 해당 값이 직접 스포츠 토토 베트맨됩니다.
스포츠 토토 베트맨 중hostaddr애플리케이션이 호스트 이름 조회를 피할 수 있도록 허용합니다. 이는 시간 제약이 있는 애플리케이션에서 중요할 수 있습니다. 그러나 GSSAPI 또는 SSPI 인증 방법에는 호스트 이름이 필요합니다.확인-전체SSL 인증서 확인. 다음 규칙이 사용됩니다.
만약호스트없이 지정됨호스트주소, 호스트 이름 조회가 발생합니다. (사용시PQconnectPoll, 다음 경우에 조회가 발생합니다.PQconnectPoll먼저 이 호스트 이름을 고려하며 이로 인해 발생할 수 있습니다.PQconnectPoll상당한 시간 동안 차단합니다.)
만약호스트주소없이 지정됨호스트, 값은hostaddr서버 네트워크 주소를 제공합니다. 인증 방법에 호스트 이름이 필요한 경우 연결 시도가 실패합니다.
둘 다인 경우호스트그리고호스트주소이 지정되었습니다. 값은호스트주소서버 네트워크 주소를 제공합니다. 값은호스트인증 방법에서 요구하지 않는 한 무시되며, 이 경우 호스트 이름으로 사용됩니다.
다음과 같은 경우 인증이 실패할 수 있다는 점에 유의하세요.호스트은(는) 네트워크 주소에 있는 서버의 이름이 아닙니다호스트주소. 또한, 둘 다일 때호스트그리고호스트주소지정되었습니다.호스트비밀번호 파일에서 연결을 식별하는 데 사용됩니다(참조배트맨 토토 : 문서 : 17 : 32.16. 암호 파일).
쉼표로 구분된 목록호스트주소값도 허용되며, 이 경우 목록의 각 호스트가 순서대로 시도됩니다. 목록의 항목이 비어 있으면 해당 호스트 이름이 사용되며, 비어 있는 경우 기본 호스트 이름도 사용됩니다. 참조섹션 32.1.1.3자세한 내용은.
호스트 이름이나 호스트 주소가 없으면,libpq로컬 Unix 도메인 소켓을 사용하여 연결합니다. 또는 Windows에서는 연결을 시도합니다.로컬호스트.
포트 #서버 호스트에 연결할 포트 번호 또는 Unix 도메인 연결을 위한 소켓 파일 이름 확장자.여러 호스트가 다음에 제공된 경우호스트또는hostaddr매개변수, 이 매개변수는 호스트 목록과 동일한 길이의 쉼표로 구분된 포트 목록을 지정하거나 모든 호스트에 사용할 단일 포트 번호를 지정할 수 있습니다. 빈 문자열 또는 쉼표로 구분된 목록의 빈 항목은 다음 경우에 설정된 기본 포트 번호를 지정합니다.포스트그레SQL건축되었습니다.
db이름 #데이터베이스 이름. 기본값은 스포츠 토토 베트맨자 이름과 동일합니다. 특정 상황에서는 확장 형식에 대한 값이 확인됩니다. 참조섹션 32.1.1자세한 내용은.
스포츠 토토 베트맨자 #PostgreSQL연결할 스포츠 토토 베트맨자 이름입니다. 기본값은 애플리케이션을 실행하는 스포츠 토토 베트맨자의 운영 체제 이름과 동일합니다.
비밀번호 #서버가 비밀번호 인증을 요구할 경우 사용할 비밀번호입니다.
패스파일 #비밀번호를 저장하는 데 사용되는 파일의 이름을 지정합니다(참조배트맨 토토 : 문서 : 17 : 32.16. 암호 파일). 기본값은~/.pgpass또는%APPDATA%\postgresql\pgpass.confMicrosoft Windows의 경우. (이 파일이 존재하지 않으면 오류가 보고되지 않습니다.)
require_auth #클라이언트가 서버에서 요구하는 인증 방법을 지정합니다. 서버가 클라이언트를 인증하는 데 필요한 방법을 사용하지 않거나 서버에서 인증 핸드셰이크가 완전히 완료되지 않은 경우 연결이 실패합니다. 쉼표로 구분된 메소드 목록도 제공될 수 있으며, 연결이 성공하려면 서버가 정확히 하나만 사용해야 합니다. 기본적으로 모든 인증 방법이 허용되며 서버는 인증을 완전히 건너뛸 수 있습니다.
메소드는 a를 추가하여 무효화할 수 있습니다.!접두사, 이 경우 서버는 반드시아님나열된 방법을 시도합니다. 다른 방법은 허용되며 서버는 클라이언트를 전혀 인증하지 않아도 됩니다. 쉼표로 구분된 목록이 제공되면 서버가 시도하지 않을 수 있습니다.모든나열된 부정 메소드 중. 부정된 형식과 부정되지 않은 형식은 동일한 설정에서 결합될 수 없습니다.
마지막 특별한 경우로,없음메서드를 스포츠 토토 베트맨하려면 서버가 인증 문제를 스포츠 토토 베트맨하지 않아야 합니다. (일종의 인증을 요구하기 위해 거부될 수도 있습니다.)
다음 방법을 지정할 수 있습니다:
비밀번호서버는 일반 텍스트 비밀번호 인증을 요청해야 합니다.
md5서버는 MD5 해시 비밀번호 인증을 요청해야 합니다.
gss서버는 다음 중 하나를 통해 Kerberos 핸드셰이크를 요청해야 합니다.GSSAPI또는 설립GSS-암호화된 채널(또한 참조gssencmode).
sspi서버는 Windows를 요청해야 합니다SSPI인증.
스크램-샤-256서버는 클라이언트와의 SCRAM-SHA-256 인증 교환을 성공적으로 완료해야 합니다.
없음서버는 클라이언트에게 인증 교환을 요청해서는 안 됩니다. (TLS를 통한 클라이언트 인증서 인증이나 암호화된 전송을 통한 GSS 인증은 금지되지 않습니다.)
채널_바인딩 #이 옵션은 클라이언트의 채널 바인딩 사용을 제어합니다. 설정은요구연결이 채널 바인딩을 사용해야 함을 의미합니다.선호가능한 경우 클라이언트가 채널 바인딩을 선택한다는 의미이며비활성화채널 바인딩 사용을 방지합니다. 기본값은선호if포스트그레SQL는 SSL 지원으로 컴파일됩니다. 그렇지 않은 경우 기본값은비활성화.
채널 바인딩은 서버가 클라이언트에 자신을 인증하는 방법입니다. SSL 연결을 통해서만 지원됩니다.포스트그레SQL11개 이상의 서버에서 다음을 사용함스크램인증 방법.
connect_timeout #연결하는 동안 대기하는 최대 시간(초) (10진수로 쓰기, 예:10). 0, 음수 또는 지정되지 않음은 무기한 대기를 의미합니다. 이 시간 초과는 각 호스트 이름이나 IP 주소에 개별적으로 적용됩니다. 예를 들어 두 개의 호스트를 지정하고connect_timeout은 5이며, 5초 이내에 연결이 이루어지지 않으면 각 호스트는 시간 초과되므로 연결을 기다리는 데 소요되는 총 시간은 최대 10초가 될 수 있습니다.
클라이언트_인코딩 #이것은 다음을 설정합니다client_encoding이 연결에 대한 구성 매개변수입니다. 해당 서버 옵션에서 허용하는 값 외에도 다음을 사용할 수 있습니다.자동클라이언트의 현재 로케일에서 올바른 인코딩을 결정합니다(LC_CTYPEUnix 시스템의 환경 변수).
옵션 #연결 시작 시 서버에 보낼 명령줄 옵션을 지정합니다. 예를 들어, 이것을로 설정하면-c geqo=끄기또는--geqo=끄기세션 값을 설정합니다.geqo매개변수 ~꺼짐. 이 문자열 내의 공백은 백슬래시()로 이스케이프하지 않는 한 별도의 명령줄 인수로 간주됩니다.\); 쓰다\\리터럴 백슬래시를 나타냅니다. 사용 가능한 옵션에 대한 자세한 내용은 다음을 참조하세요.윈 토토 : 문서 : 17 : 19 장 서버 구성.
응용프로그램_이름 #에 대한 값을 지정합니다.응용프로그램_이름구성 매개변수.
fallback_application_name #에 대한 대체 값을 지정합니다.응용프로그램_이름구성 매개변수. 이 값은 값이 제공되지 않은 경우 사용됩니다.응용프로그램_이름연결 매개변수를 통해 또는PGAPPNAME환경 변수. 대체 이름을 지정하는 것은 기본 애플리케이션 이름을 설정하려고 하지만 스포츠 토토 베트맨자가 이를 재정의할 수 있도록 허용하는 일반 유틸리티 프로그램에 유용합니다.
연결 유지 #클라이언트측 TCP 연결 유지 사용 여부를 제어합니다. 기본값은 1(켜짐)이지만, 연결 유지를 원하지 않는 경우 0(꺼짐)으로 변경할 수 있습니다. Unix 도메인 소켓을 통해 이루어진 연결에서는 이 매개변수가 무시됩니다.
keepalives_idle #TCP가 서버에 연결 유지 메시지를 보내야 하는 비활성 시간(초)을 제어합니다. 0 값은 시스템 기본값을 사용합니다. Unix 도메인 소켓을 통해 이루어진 연결이나 연결 유지가 비활성화된 경우 이 매개변수는 무시됩니다. 다음과 같은 시스템에서만 지원됩니다.TCP_KEEPIDLE또는 이에 상응하는 소켓 옵션을 사용할 수 있으며 Windows에서는; 다른 시스템에서는 아무런 효과가 없습니다.
keepalives_interval #서버가 승인하지 않은 TCP 연결 유지 메시지가 재전송되어야 하는 시간(초)을 제어합니다. 0 값은 시스템 기본값을 사용합니다. Unix 도메인 소켓을 통해 이루어진 연결이나 연결 유지가 비활성화된 경우 이 매개변수는 무시됩니다. 다음과 같은 시스템에서만 지원됩니다.TCP_KEEPINTVL또는 이에 상응하는 소켓 옵션을 사용할 수 있으며 Windows에서는; 다른 시스템에서는 아무런 효과가 없습니다.
keepalives_count #클라이언트의 서버 연결이 끊어진 것으로 간주되기 전에 손실될 수 있는 TCP 연결 유지 수를 제어합니다. 0 값은 시스템 기본값을 사용합니다. Unix 도메인 소켓을 통해 이루어진 연결이나 연결 유지가 비활성화된 경우 이 매개변수는 무시됩니다. 다음과 같은 시스템에서만 지원됩니다.TCP_KEEPCNT또는 동등한 소켓 옵션을 사용할 수 있습니다. 다른 시스템에서는 아무런 효과가 없습니다.
tcp_user_timeout #연결이 강제로 종료되기 전에 전송된 데이터가 승인되지 않은 상태로 유지될 수 있는 시간(밀리초)을 제어합니다. 0 값은 시스템 기본값을 사용합니다. Unix 도메인 소켓을 통해 이루어진 연결에서는 이 매개변수가 무시됩니다. 다음과 같은 시스템에서만 지원됩니다.TCP_USER_TIMEOUT사용 가능합니다. 다른 시스템에서는 아무런 효과가 없습니다.
복제 #이 옵션은 연결이 일반 프로토콜 대신 복제 프로토콜을 사용해야 하는지 여부를 결정합니다. 이것이 PostgreSQL 복제 연결 및 다음과 같은 도구입니다.pg_basebackup내부적으로 사용되지만 타사 응용 프로그램에서도 사용할 수 있습니다. 복제 프로토콜에 대한 설명은 참조하세요.PostgreSQL : 문서 : 17 : 53.4. 와이즈 토토 복제 프로토콜.
대소문자를 구분하지 않는 다음 값이 지원됩니다.
사실, 켜짐, 예, 1연결이 물리적 복제 모드로 들어갑니다.
데이터베이스연결이 논리적 복제 모드로 전환되어 다음에 지정된 데이터베이스에 연결됩니다.db이름매개변수.
거짓, 꺼짐, 아니요, 0연결은 기본 동작인 일반적인 연결입니다.
물리적 또는 논리적 복제 모드에서는 단순 쿼리 프로토콜만 사용할 수 있습니다.
gssencmode #이 옵션은 보안 우선순위를 결정합니다.GSSTCP/IP 연결이 서버와 협상됩니다. 세 가지 모드가 있습니다:
비활성화비-만 시도해 보세요.GSSAPI-암호화된 연결
선호(기본값)있다면GSSAPI자격 증명이 존재합니다(즉, 자격 증명 캐시에 있음). 먼저 a를 시도하십시오.GSSAPI-암호화된 연결; 실패하거나 자격 증명이 없으면 비-를 시도하십시오.GSSAPI-암호화된 연결. 다음의 경우 기본값입니다.포스트그레SQL다음으로 컴파일되었습니다GSSAPI지원합니다.
요구한번만 시도해 보세요GSSAPI-암호화된 연결
gssencmode83080_83135포스트그레SQL는 다음을 사용하여 GSSAPI 지원 없이 컴파일됩니다.요구옵션은 오류를 일으키는 반면선호허용되지만libpq실제로는 시도하지 않습니다GSSAPI-암호화된 연결.
sslmode #이 옵션은 보안 우선순위를 결정합니다.SSLTCP/IP 연결이 서버와 협상됩니다. 6가지 모드가 있습니다:
비활성화비-만 시도해 보세요.SSL연결
허용먼저 비-를 시도해 보세요.SSL연결; 실패하면 다음을 시도해 보세요.SSL연결
선호(기본값)먼저 시도해보세요SSL연결; 실패하면 비-를 시도하십시오.SSL연결
요구한 번만 시도해보세요SSL연결. 루트 CA 파일이 있는 경우 다음과 같은 방식으로 인증서를 확인합니다.검증-ca지정되었습니다
verify-ca한 번만 시도해보세요SSL연결하고 서버 인증서가 신뢰할 수 있는 인증 기관에서 발급되었는지 확인하세요(캘리포니아)
전체 확인한 번만 시도해보세요SSL연결, 서버 인증서가 신뢰할 수 있는 기관에서 발급되었는지 확인하세요.캘리포니아요청한 서버 호스트 이름이 인증서의 이름과 일치하는지 확인
참조섹션 32.19이러한 옵션의 작동 방식에 대한 자세한 설명을 참조하세요.
sslmode86137_86192포스트그레SQL옵션을 사용하여 SSL 지원 없이 컴파일됩니다.요구, verify-ca또는전체 확인오류가 발생하지만 옵션은허용그리고선호허용되지만libpq실제로는 시도하지 않습니다SSL연결.
만약에 주의하세요GSSAPI암호화가 가능하며, 이는 우선적으로 스포츠 토토 베트맨됩니다.SSL암호화, 값에 관계없음sslmode. 강제로 스포츠 토토 베트맨하려면SSL작동 중인 환경의 암호화GSSAPI인프라(예: Kerberos 서버)도 설정됨gssencmode에비활성화.
requiressl #이 옵션은 다음을 위해 더 이상 사용되지 않습니다.sslmode설정.
1로 설정하면,SSL서버 연결이 필요합니다. (이는 다음과 같습니다.sslmode 요구). libpq서버가 승인하지 않으면 연결을 거부합니다SSL연결. 0(기본값)으로 설정하면,libpq서버와 연결 유형을 협상합니다(동등함ssl모드 선호). 이 옵션은 다음 경우에만 사용할 수 있습니다.포스트그레SQLSSL 지원으로 컴파일되었습니다.
ssl협상 #이 옵션은 SSL이 사용되는 경우 SSL 암호화가 서버와 협상되는 방법을 제어합니다. 기본값으로포스트그레모드에서 클라이언트는 먼저 SSL이 지원되는지 서버에 묻습니다. 에서직접모드에서는 클라이언트가 TCP/IP 연결을 설정한 후 바로 표준 SSL 핸드셰이크를 시작합니다. 전통적PostgreSQL프로토콜 협상은 다양한 서버 구성에서 가장 유연합니다. 서버가 직접 지원하는 것으로 알려진 경우SSL연결의 경우 후자는 왕복 횟수가 한 번 더 적어 연결 대기 시간이 줄어들고 프로토콜에 구애받지 않는 SSL 네트워크 도구를 사용할 수도 있습니다. 직접 SSL 옵션은 다음에서 도입되었습니다.포스트그레SQL버전 17.
포스트그레수행포스트그레SQL프로토콜 협상. 옵션이 제공되지 않은 경우 기본값입니다.
직접TCP/IP 연결을 설정한 후 바로 SSL 핸드셰이크를 시작합니다. 이는 sslmode=require 이상에서만 허용됩니다. 서버가 직접 SSL 핸드셰이크를 지원하지 않을 때 설정이 약하면 의도치 않게 일반 텍스트 인증으로 대체될 수 있기 때문입니다.
ssl압축 #1로 설정하면 SSL 연결을 통해 전송된 데이터가 압축됩니다. 0으로 설정하면 압축이 비활성화됩니다. 기본값은 0입니다. SSL 없이 연결되면 이 매개변수는 무시됩니다.
SSL 압축은 요즘 안전하지 않은 것으로 간주되어 더 이상 사용이 권장되지 않습니다.오픈SSL1.1.0은 기본적으로 압축을 비활성화했으며 많은 운영 체제 배포판에서는 이전 버전에서도 압축을 비활성화했습니다. 따라서 서버가 압축을 허용하지 않으면 이 매개변수를 on으로 설정해도 아무런 효과가 없습니다.포스트그레SQL14 백엔드에서 압축을 완전히 비활성화했습니다.
보안이 주요 관심사가 아닌 경우 네트워크에 병목 현상이 있으면 압축을 통해 처리량이 향상될 수 있습니다. CPU 성능이 제한 요소인 경우 압축을 비활성화하면 응답 시간과 처리량이 향상될 수 있습니다.
sslcert #이 매개변수는 클라이언트 SSL 인증서의 파일 이름을 지정하며 기본값을 대체합니다.~/.postgresql/postgresql.crt. SSL 연결이 이루어지지 않으면 이 매개변수는 무시됩니다.
sslkey #이 매개변수는 클라이언트 인증서에 사용되는 비밀 키의 위치를 지정합니다. 기본값 대신 사용될 파일 이름을 지정할 수 있습니다.~/.postgresql/postgresql.key또는 외부에서 얻은 키를 지정할 수 있습니다.“엔진”(엔진은오픈SSL로드 가능한 모듈). 외부 엔진 사양은 콜론으로 구분된 엔진 이름과 엔진별 키 식별자로 구성되어야 합니다. SSL 연결이 이루어지지 않으면 이 매개변수는 무시됩니다.
ssl비밀번호 #이 매개변수는 다음에 지정된 비밀 키의 비밀번호를 지정합니다.sslkey, 대화형 암호 입력이 실용적이지 않은 경우에도 클라이언트 인증서 개인 키를 암호화된 형식으로 디스크에 저장할 수 있습니다.
이 매개변수를 비어 있지 않은 값으로 지정하면 다음이 억제됩니다.PEM 비밀번호 문구 입력:그것을 프롬프트오픈SSL암호화된 클라이언트 인증서 키가 제공되면 기본적으로 내보냅니다.libpq.
키가 암호화되지 않은 경우 이 매개변수는 무시됩니다. 매개변수는 다음으로 지정된 키에 영향을 미치지 않습니다.오픈SSL엔진이 다음을 사용하지 않는 한오픈SSL프롬프트에 대한 비밀번호 콜백 메커니즘.
이 옵션과 동등한 환경 변수가 없으며 이를 검색할 수 있는 기능도 없습니다.pgpass. 서비스 파일 연결 정의에 사용할 수 있습니다. 좀 더 정교한 용도로 사용하는 스포츠 토토 베트맨자는 다음을 사용하는 것을 고려해야 합니다.오픈SSLPKCS#11 또는 USB 암호화 오프로드 장치와 같은 엔진 및 도구.
sslcertmode #이 옵션은 클라이언트 인증서가 서버에 전송될 수 있는지 여부와 서버가 인증서를 요청해야 하는지 여부를 결정합니다. 세 가지 모드가 있습니다:
비활성화클라이언트 인증서는 사용 가능한 경우에도 전송되지 않습니다(기본 위치 또는 다음을 통해 제공됨)sslcert).
허용(기본값)서버가 인증서를 요청하고 클라이언트가 보낼 인증서가 있는 경우 인증서가 보내질 수 있습니다.
요구서버반드시인증서를 요청하세요. 클라이언트가 인증서를 보내지 않고 서버가 클라이언트를 성공적으로 인증하면 연결이 실패합니다.
sslcertmode=require서버가 인증서를 올바르게 검증한다는 보장이 없기 때문에 추가 보안을 추가하지 않습니다. PostgreSQL 서버는 일반적으로 클라이언트의 유효성 검사 여부에 관계없이 TLS 인증서를 요청합니다. 이 옵션은 보다 복잡한 TLS 설정 문제를 해결할 때 유용할 수 있습니다.
sslrootcert #이 매개변수는 SSL 인증 기관을 포함하는 파일의 이름을 지정합니다(CA) 인증서. 파일이 존재하는 경우 서버의 인증서가 이러한 기관 중 하나에 의해 서명되었는지 확인됩니다. 기본값은~/.postgresql/root.crt.
특수 값시스템96244_96446오픈SSL특히 위치는 다음에 의해 추가로 수정될 수 있습니다.SSL_CERT_DIR그리고SSL_CERT_FILE환경 변수.
스포츠 토토 베트맨 시sslrootcert=시스템, 기본값sslmode다음으로 변경됨전체 확인, 설정이 더 약하면 오류가 발생합니다. 대부분의 경우 누구든지 자신이 제어하는 호스트 이름에 대해 시스템에서 신뢰하는 인증서를 얻는 것은 쉽지 않습니다.검증-ca그리고 모든 약한 모드는 쓸모가 없습니다.
마법시스템값은 동일한 이름을 가진 로컬 인증서 파일보다 우선합니다. 어떤 이유로 이런 상황에 처한 경우 다음과 같은 대체 경로를 사용하세요.sslrootcert=./system대신.
sslcrl #이 매개변수는 SSL 서버 인증서 해지 목록(CRL)의 파일 이름을 지정합니다. 이 파일에 나열된 인증서가 있는 경우 서버 인증서 인증을 시도하는 동안 거부됩니다. 둘 다 아니라면sslcrl아니요sslcrldir이 설정되면 이 설정은 다음과 같이 사용됩니다.~/.postgresql/root.crl.
sslcrldir #이 매개변수는 SSL 서버 인증서 해지 목록(CRL)의 디렉토리 이름을 지정합니다. 이 디렉터리의 파일에 나열된 인증서가 있는 경우 서버의 인증서를 인증하려고 시도하는 동안 거부됩니다.
디렉토리는 다음을 사용하여 준비되어야 합니다.오픈SSL명령openssl 재해시또는c_rehash. 자세한 내용은 해당 문서를 참조하세요.
둘 다sslcrl그리고sslcrldir함께 지정할 수 있습니다.
sslsni #1(기본값)로 설정하면 libpq가 TLS 확장을 설정합니다.“서버 이름 표시” (SNI) SSL 사용 연결에서. 이 매개변수를 0으로 설정하면 꺼집니다.
서버 이름 표시는 SSL 인식 프록시에서 SSL 스트림을 해독하지 않고도 연결을 라우팅하는 데 사용할 수 있습니다. (프록시가 PostgreSQL 프로토콜 핸드셰이크를 인식하지 않는 한 설정이 필요합니다.ssl협상에직접.) 그러나SNI대상 호스트 이름이 네트워크 트래픽에 일반 텍스트로 나타나도록 하므로 경우에 따라 바람직하지 않을 수 있습니다.
requirepeer #이 매개변수는 서버의 운영 체제 스포츠 토토 베트맨자 이름을 지정합니다. 예를 들어requirepeer=postgres. Unix 도메인 소켓 연결을 만들 때 이 매개변수가 설정되면 클라이언트는 연결 시작 시 서버 프로세스가 지정된 스포츠 토토 베트맨자 이름으로 실행되고 있는지 확인합니다. 그렇지 않은 경우 오류와 함께 연결이 중단됩니다. 이 매개변수는 TCP/IP 연결에서 SSL 인증서에 사용할 수 있는 것과 유사한 서버 인증을 제공하는 데 사용할 수 있습니다. (Unix 도메인 소켓이 있는 경우 참고하세요./tmp또는 공개적으로 쓰기 가능한 다른 위치에서 모든 스포츠 토토 베트맨자는 그곳에서 수신 대기하는 서버를 시작할 수 있습니다. 신뢰할 수 있는 스포츠 토토 베트맨자가 실행하는 서버에 연결되어 있는지 확인하려면 이 매개변수를 사용하십시오.) 이 옵션은 다음을 수행하는 플랫폼에서만 지원됩니다.동료인증 방법이 구현되었습니다. 참조PostgreSQL : 문서 : 17 : 20.9. 피어 스포츠 토토 결과.
ssl_min_protocol_version #이 매개변수는 연결을 허용하는 최소 SSL/TLS 프로토콜 버전을 지정합니다. 유효한 값은 다음과 같습니다.TLSv1, TLSv1.1, TLSv1.2그리고TLSv1.3. 지원되는 프로토콜은 버전에 따라 다릅니다.오픈SSL사용됨, 이전 버전은 최신 프로토콜 버전을 지원하지 않습니다. 지정하지 않으면 기본값은TLSv1.2, 이는 이 글을 쓰는 시점의 업계 모범 사례를 충족합니다.
ssl_max_protocol_version #이 매개변수는 연결을 허용하는 최대 SSL/TLS 프로토콜 버전을 지정합니다. 유효한 값은 다음과 같습니다.TLSv1, TLSv1.1, TLSv1.2그리고TLSv1.3. 지원되는 프로토콜은 버전에 따라 다릅니다.오픈SSL사용됨, 이전 버전은 최신 프로토콜 버전을 지원하지 않습니다. 설정되지 않은 경우 이 매개변수는 무시되며 설정된 경우 연결은 백엔드에서 정의한 최대 경계를 사용합니다. 최대 프로토콜 버전을 설정하는 것은 주로 테스트에 유용하거나 일부 구성요소가 최신 프로토콜과 작동하는 데 문제가 있는 경우에 유용합니다.
krbsrvname #GSSAPI로 인증할 때 사용할 Kerberos 서비스 이름입니다. Kerberos 인증이 성공하려면 서버 구성에 지정된 서비스 이름과 일치해야 합니다. (또한 참조PostgreSQL : 문서 : 17 : 20.6. 스포츠 토토 사이트 인증.) 기본값은 일반적으로포스트그레, 하지만 빌드할 때 변경될 수 있습니다.PostgreSQL경유--with-krb-srvnam옵션구성. 대부분의 환경에서는 이 매개변수를 변경할 필요가 없습니다. 일부 Kerberos 구현에는 서비스 이름이 대문자여야 하는 Microsoft Active Directory와 같은 다른 서비스 이름이 필요할 수 있습니다(포스트그레스).
gsslib #GSSAPI 인증에 사용할 GSS 라이브러리입니다. 현재 이는 GSSAPI 및 SSPI 지원을 모두 포함하는 Windows 빌드를 제외하고 무시됩니다. 이 경우에는 다음과 같이 설정하세요.gssapilibpq가 인증을 위해 기본 SSPI 대신 GSSAPI 라이브러리를 사용하도록 합니다.
gss위임 #GSS 자격증명을 서버에 전달(위임)합니다. 기본값은0이는 자격 증명이 서버로 전달되지 않음을 의미합니다. 다음으로 설정하세요.1가능한 경우 자격 증명을 전달합니다.
서비스 #추가 매개변수에 사용할 서비스 이름입니다. 서비스 이름을 지정합니다.pg_service.conf추가 연결 매개변수를 보유하고 있습니다. 이를 통해 애플리케이션은 서비스 이름만 지정하여 연결 매개변수를 중앙에서 관리할 수 있습니다. 참조PostgreSQL : 문서 : 17 : 32.17. 연결 서비스 토토 결과.
target_session_attrs #이 옵션은 세션이 허용되기 위해 특정 속성을 가져야 하는지 여부를 결정합니다. 일반적으로 여러 호스트 이름과 함께 사용되어 여러 호스트 중에서 첫 번째로 허용되는 대안을 선택합니다. 6가지 모드가 있습니다:
모든(기본값)성공적인 연결은 허용됩니다.
읽기-쓰기세션은 기본적으로 읽기-쓰기 트랜잭션을 허용해야 합니다(즉, 서버가 상시 대기 모드에 있어서는 안 되며default_transaction_read_only매개변수는 다음과 같아야 합니다꺼짐)
읽기 전용세션은 기본적으로 읽기-쓰기 트랜잭션을 허용해서는 안 됩니다(반대)
기본서버가 상시 대기 모드에 있어서는 안 됩니다.
대기서버는 상시 대기 모드에 있어야 합니다
선호-대기먼저 대기 서버를 찾으십시오. 그러나 나열된 호스트 중 대기 서버가 아닌 경우 다시 시도하십시오.모든모드
load_balance_hosts #클라이언트가 사용 가능한 호스트 및 주소에 연결을 시도하는 순서를 제어합니다. 연결 시도가 성공하면 다른 호스트와 주소는 시도되지 않습니다. 이 매개변수는 일반적으로 여러 호스트 이름 또는 여러 IP를 반환하는 DNS 레코드와 함께 사용됩니다. 이 매개변수는와 함께 사용할 수 있습니다.target_session_attrs예를 들어 대기 서버에 대해서만 로드 밸런싱을 수행합니다. 성공적으로 연결되면 반환된 연결에 대한 후속 쿼리가 모두 동일한 서버로 전송됩니다. 현재 두 가지 모드가 있습니다:
비활성화(기본값)호스트 전체에 로드 밸런싱이 수행되지 않습니다. 호스트는 제공된 순서대로 시도되고 주소는 DNS 또는 호스트 파일에서 수신된 순서대로 시도됩니다.
무작위호스트와 주소는 무작위 순서로 시도됩니다. 이 값은 여러 컴퓨터에서 동시에 여러 연결을 열 때 주로 유용합니다. 이 방법으로 여러 연결에 걸쳐 로드 밸런싱을 수행할 수 있습니다.PostgreSQL서버.
무작위 로드 밸런싱은 무작위 특성으로 인해 완전히 균일한 분포를 가져오는 경우는 거의 없지만 통계적으로는 상당히 유사합니다. 여기서 중요한 측면 중 하나는 이 알고리즘이 두 가지 수준의 무작위 선택을 사용한다는 것입니다. 먼저 호스트가 무작위 순서로 확인됩니다. 둘째, 다음 호스트를 확인하기 전에 현재 호스트에 대해 확인된 모든 주소를 무작위 순서로 시도합니다. 이 동작은 특정 경우(예: 일부 호스트가 다른 호스트보다 더 많은 주소를 확인하는 경우) 각 노드가 얻는 연결 양을 크게 왜곡할 수 있습니다. 그러나 이러한 왜곡은 의도적으로 사용될 수도 있습니다. 호스트 문자열에 호스트 이름을 여러 번 제공하여 더 큰 서버가 얻는 연결 수를 늘리십시오.
이 값을 사용할 때 다음에 대한 합리적인 값도 구성하는 것이 좋습니다.connect_timeout. 따라서 부하 분산에 스포츠 토토 베트맨되는 노드 중 하나가 응답하지 않으면 새 노드가 시도됩니다.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.