30.14. ÐеÑеменнÑе окÑÑжениÑ
ÐоÑполÑзовавÑиÑÑ ÑледÑÑÑими пеÑеменнÑми окÑÑжениÑ, можно задаÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑов ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑаниÑ, коÑоÑÑе бÑдÑÑ Ð¸ÑполÑзоваÑÑÑÑ ÑÑнкÑиÑми PQconnectdb, PQsetdbLogin и PQsetdb, еÑли никакое знаÑение не бÑÐ´ÐµÑ Ð·Ð°Ð´Ð°Ð½Ð¾ вÑзÑваÑÑим кодом. Ð ÑаÑÑноÑÑи, иÑполÑзÑÑ Ð¸Ñ
, можно обойÑиÑÑ Ð±ÐµÐ· жÑÑÑкого Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ð¿Ð°ÑамеÑÑов ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð² пÑоÑÑÑÑ
клиенÑÑкиÑ
пÑиложениÑÑ
.
PGHOSTдейÑÑвÑÐµÑ Ñак же, как паÑамеÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ host.PGHOSTADDRдейÑÑвÑÐµÑ Ñак же, как паÑамеÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ hostaddr. ÐÑÑ Ð¿ÐµÑеменнÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ задаÑÑ Ð²Ð¼ÐµÑÑо или вмеÑÑе ÑPGHOSTÐ´Ð»Ñ Ð¿ÑедоÑвÑаÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð¸Ñка адÑеÑа в DNS.PGPORTдейÑÑвÑÐµÑ Ñак же, как паÑамеÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ port.PGDATABASEдейÑÑвÑÐµÑ Ñак же, как паÑамеÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ dbname.PGUSERдейÑÑвÑÐµÑ Ñак же, как паÑамеÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ user.PGPASSWORDдейÑÑвÑÐµÑ Ñак же, как паÑамеÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ password. ÐÑполÑзоваÑÑ ÑÑÑ Ð¿ÐµÑеменнÑÑ Ð¾ÐºÑÑÐ¶ÐµÐ½Ð¸Ñ Ð½Ðµ ÑекомендÑеÑÑÑ Ð¿Ð¾ ÑообÑажениÑм безопаÑноÑÑи, Ñак как в некоÑоÑÑÑ Ð¾Ð¿ÐµÑаÑионнÑÑ ÑиÑÑÐµÐ¼Ð°Ñ Ð½ÐµÐ¿ÑивилегиÑованнÑе полÑзоваÑели могÑÑ Ð²Ð¸Ð´ÐµÑÑ Ð¿ÐµÑеменнÑе окÑÑÐ¶ÐµÐ½Ð¸Ñ Ð¿ÑоÑеÑÑов в вÑводе ps; вмеÑÑо ÑÑого лÑÑÑе иÑполÑзоваÑÑ Ñайл~/.pgpass(Ñм. Раздел 30.15).PGPASSFILEÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð¸Ð¼Ñ Ñайла паÑолей, в коÑоÑом бÑдÑÑ Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑÑ ÑÐ¾Ñ ÑанÑннÑе паÑоли. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿ÑименÑеÑÑÑ Ð¸Ð¼Ñ Ñайла~/.pgpass(Ñм. Раздел 30.15).PGSERVICEдейÑÑвÑÐµÑ Ñак же, как паÑамеÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ service.PGSERVICEFILEзадаÑÑ Ð¸Ð¼Ñ Ð»Ð¸Ñного Ñайла полÑзоваÑÐµÐ»Ñ Ñ Ð¿Ð°ÑамеÑÑами подклÑÑÐµÐ½Ð¸Ñ Ðº ÑлÑжбам. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿ÑименÑеÑÑÑ Ð¸Ð¼Ñ Ñайла~/.pg_service.conf(Ñм. Раздел 30.16).PGOPTIONSдейÑÑвÑÐµÑ Ñак же, как паÑамеÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ options.PGAPPNAMEдейÑÑвÑÐµÑ Ñак же, как паÑамеÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ application_name.PGSSLMODEдейÑÑвÑÐµÑ Ñак же, как паÑамеÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ sslmode.PGREQUIRESSLдейÑÑвÑÐµÑ Ñак же, как паÑамеÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ requiressl. ÐÑа пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¾ÐºÑÑÐ¶ÐµÐ½Ð¸Ñ ÑÑÑаÑила акÑÑалÑноÑÑÑ Ñ Ð¿Ð¾Ñвлением пеÑеменнойPGSSLMODE; еÑли ÑÑÑановиÑÑ Ð¾Ð±Ðµ пеÑеменнÑе, знаÑение данной не возÑÐ¼ÐµÐµÑ ÑÑÑекÑа.PGSSLCOMPRESSIONдейÑÑвÑÐµÑ Ñак же, как паÑамеÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ sslcompression.PGSSLCERTдейÑÑвÑÐµÑ Ñак же, как паÑамеÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ sslcert.PGSSLKEYдейÑÑвÑÐµÑ Ñак же, как паÑамеÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ sslkey.PGSSLROOTCERTдейÑÑвÑÐµÑ Ñак же, как паÑамеÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ sslrootcert.PGSSLCRLдейÑÑвÑÐµÑ Ñак же, как паÑамеÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ sslcrl.PGREQUIREPEERдейÑÑвÑÐµÑ Ñак же, как паÑамеÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ requirepeer.PGKRBSRVNAMEдейÑÑвÑÐµÑ Ñак же, как паÑамеÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ krbsrvname.PGGSSLIBдейÑÑвÑÐµÑ Ñак же, как паÑамеÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ gsslib.PGCONNECT_TIMEOUTдейÑÑвÑÐµÑ Ñак же, как паÑамеÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ connect_timeout.PGCLIENTENCODINGдейÑÑвÑÐµÑ Ñак же, как паÑамеÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ client_encoding.
СледÑÑÑие пеÑеменнÑе окÑÑÐ¶ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÑÑ Ð·Ð°Ð´Ð°ÑÑ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ðµ по ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ оÑделÑного ÑеанÑа Postgres Pro. (См. Ñакже опиÑание команд ALTER ROLE и ALTER DATABASE, позволÑÑÑÐ¸Ñ ÑÑÑановиÑÑ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ðµ по ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ Ð¾ÑделÑного полÑзоваÑÐµÐ»Ñ Ð¸Ð»Ð¸ оÑделÑной базÑ.)
PGDATESTYLEÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑÑÐ¸Ð»Ñ Ð¿ÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°ÑÑ/вÑемени по ÑмолÑаниÑ. (РавноÑилÑноSET datestyle TO ....)PGTZÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑаÑовой поÑÑ Ð¿Ð¾ ÑмолÑаниÑ. (РавноÑилÑноSET timezone TO ....)PGGEQOÑÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ñежим по ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑиÑеÑкого опÑимизаÑоÑа запÑоÑов. (РавноÑилÑноSET geqo TO ....)
ÐнÑоÑмаÑÐ¸Ñ Ð¾ коÑÑекÑнÑÑ Ð·Ð½Ð°ÑениÑÑ ÑÑÐ¸Ñ Ð¿ÐµÑеменнÑÑ Ð¾ÐºÑÑÐ¶ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ найÑи в опиÑании SQL-ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ SET.
СледÑÑÑие пеÑеменнÑе ÑÑÐµÐ´Ñ Ð¾Ð¿ÑеделÑÑÑ Ð²Ð½ÑÑÑеннее поведение libpq; они пеÑеопÑеделÑÑÑ Ð²ÑÑÑоеннÑе знаÑениÑ.
PGSYSCONFDIRзадаÑÑ ÐºÐ°Ñалог, в коÑоÑом ÑодеÑжиÑÑÑ Ñайлpg_service.conf, а в бÑдÑÑем он Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ Ð¸ дÑÑгие обÑеÑиÑÑемнÑе ÑÐ°Ð¹Ð»Ñ ÐºÐ¾Ð½ÑигÑÑаÑии.PGLOCALEDIRзадаÑÑ ÐºÐ°Ñалог, ÑодеÑжаÑий ÑайлÑlocale, пÑедназнаÑеннÑе Ð´Ð»Ñ Ð¿ÐµÑевода ÑообÑений.