[转帖]postgresql 的一些变量和密码文件

postgresql,一些,变量,密码文件 · 浏览次数 : 0

小编点评

**环境变量默认值** 以下环境变量可用于设置默认的连接参数值: * **PGHOST**:指定数据库连接的服务器地址。 * **PGHOSTADDR**:指定数据库连接的服务器地址。 * **PGPORT**:指定数据库连接的端口号。 * **PGDATABASE**:指定数据库名称。 * **PGUSER**:指定数据库连接的用户名。 * **PGPASSWORD**:指定数据库连接的密码。 * **PGREALM**:设置 Kerberos 领域和本地领域不同时的连接模式。 * **PGSERVICE**:指定每个用户连接服务文件名。 * **PGSERVICEFILE**:指定针对每个用户的连接服务文件名。 * **PGSSLMODE**:设置 SSL 协议的模式。 * **PGREQUIRESSL**:设置 SSL 要求客户端是否应要求证书。 * **PGSSLCOMPRESSION**:设置 SSL 压缩的模式。 * **PGSSLCERT**:设置 SSL 证书文件的名称。 * **PGSSLKEY**:设置 SSL 密钥文件的名称。 * **PGSSLROOTCERT**:设置 SSL 根证书文件的名称。 * **PGSSLCRL**:设置 SSL 中证书链文件的名称。 * **PGKRBSRVNAME**:设置 GSSAPI 认证服务器名称。 * **PGGSSLIB**:设置 GSSAPI 客户端库名称。 * **PGCONNECT_TIMEOUT**:设置数据库连接超时时间。 * **PGCLIENTENCODING**:设置客户端编码。 * **PGDATESTYLE**:设置日期/时间表示的默认格式。 * **PGTZ**:设置默认时区。 * **PGGEQO**:设置遗传查询优化器的默认模式。

正文

https://www.cnblogs.com/ctypyb2002/p/9792872.html

 

一些变量

下列环境变量能被用于选择默认的连接参数值,如果调用代码没有直接指定值,它们将被用于PQconnectdb、PQsetdbLogin和PQsetdb。例如,这些有助于防止数据库连接信息被硬编码到简单的客户端应用中。

PGHOST的行为和host连接参数相同。

PGHOSTADDR的行为和hostaddr连接参数相同。可以设置它来替代或者作为PGHOST的补充来防止 DNS 查找负担。

PGPORT的行为和port连接参数相同。

PGDATABASE的行为和dbname连接参数相同。

PGUSER的行为和user连接参数相同。

PGPASSWORD的行为和password连接参数相同。出于安全原因,我们不推荐使用这个环境变量,因为某些操作系统允许非根用户通过ps看到进程的环境变量。可以考虑使用~/.pgpass文件(见第 32.15 节)。

PGPASSFILE指定要用于查找的口令文件的名称。如果没有设置,默认为~/.pgpass(见第 32.15 节)。

PGSERVICE的行为和service连接参数相同。

PGSERVICEFILE指定针对每个用户的连接服务文件名。如果没有设置,默认为~/.pg_service.conf(见第 32.16 节)。

如果PostgreSQL要使用的 Kerberos 领域和本地领域不同,PGREALM可以设置它。如果PGREALM被设置,libpq应用将尝试通过服务器鉴定这个领域并且使用独立的票据文件来避免与本地票据文件冲突。只有在服务器选择了 GSSAPI 认证时,这个环境变量才被使用。

PGOPTIONS的行为和options连接参数相同。

PGAPPNAME的行为和application_name连接参数相同。

PGSSLMODE的行为和sslmode连接参数相同。

PGREQUIRESSL的行为和requiressl连接参数相同。

PGSSLCOMPRESSION的行为和sslcompression连接参数相同。

PGSSLCERT的行为和sslcert连接参数相同。

PGSSLKEY的行为和sslkey连接参数相同。

PGSSLROOTCERT的行为和sslrootcert连接参数相同。

PGSSLCRL的行为和sslcrl连接参数相同。

PGREQUIREPEER的行为和requirepeer连接参数相同。

PGKRBSRVNAME的行为和krbsrvname连接参数相同。

PGGSSLIB的行为和gsslib连接参数相同。

PGCONNECT_TIMEOUT的行为和connect_timeout连接参数相同。

PGCLIENTENCODING的行为和client_encoding连接参数相同。

下面的环境变量可用来为每一个PostgreSQL会话指定默认行为(为每一个用户或每一个数据库设置默认行为的方法还可见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文件的目录。

密码文件

一个用户主目录中的.pgpass文件或者被PGPASSFILE引用的文件可能包含在连接需要时使用的口令(并且其他情况不会指定口令)。在微软的 Windows 上该文件被命名为%APPDATA%\postgresql\pgpass.conf(其中%APPDATA%指的是用户配置中的应用数据子目录)。

这个文件应该包含下列格式的行:

hostname:port:database:username:password

(你可以向该文件增加一个提醒:把上面的行复制到该文件并且在前面加上#)。前四个域的每一个都可以是文字值或者匹配任何东西的*。第一个匹配当前连接参数的行中的口令域将被使用(因此,在使用通配符时把更特殊的项放在前面)。如果一个条目需要包含:或者\,用\对该字符转义。一个localhost主机名匹配来自本地机器的 TCP (主机名localhost)和 Unix 域套接字(pghost为空或者默认套接字目录)连接。在一台后备服务器上,一个名为replication的数据库名匹配到主控服务器的流复制连接。database域的用途有限,因为用户对同一个集簇中所有数据库都有相同的口令。

在 Unix 系统上,.pgpass上的权限必须不允许所有人或组内访问,可以用命令 chmod 0600 ~/.pgpass 实现。如果权限没有这么严格,该文件将被忽略。在微软 Windows 上,该文件被假定存储在一个安全的目录中,因此不会进行特别的权限检查。

参考:
http://postgres.cn/docs/9.6/libpq-envars.html
http://postgres.cn/docs/9.6/libpq-pgpass.html

与[转帖]postgresql 的一些变量和密码文件相似的内容:

[转帖]postgresql 的一些变量和密码文件

https://www.cnblogs.com/ctypyb2002/p/9792872.html 一些变量 下列环境变量能被用于选择默认的连接参数值,如果调用代码没有直接指定值,它们将被用于PQconnectdb、PQsetdbLogin和PQsetdb。例如,这些有助于防止数据库连接信息被硬编码

[转帖]PostgreSQL与MySQL 分析对比

http://www.pgsql.tech/article_101_10000079 概述 在几个流行的数据库中,我首先接触到的是MySQL,随着工作发展,接触到越来越多的是PostgreSQL数据库。这两个十分流行的开源数据库。在这之后,我就会经常和一些朋友进行讨论:MySQL和PostgreSQ

[转帖]PostgreSQL任意命令执行漏洞利用(CVE-2019-9193)

https://zhuanlan.zhihu.com/p/143443516 最近没事曰曰内网,偶然发现了一个使用空密码的pg(是的,连爆破都省了)。用navicat连上去看了下几个库都是一些业务测试数据,没什么好收集;不死心,google了一下发现有个比较新的CVE好像可以操作一下~ 漏洞概述 最

[转帖]postgresql 的 pg_hba.conf 的行记录顺序

postgresql: 9.6 一直觉得 pg_hba.conf 的行记录与顺序无关,遵循细化优先的规则。今天在回顾 pg_hba.conf 文档时发现这种认识是错的。 下面这段话是从文档拷贝过来的: 因为每一次连接尝试都会顺序地检查pg_hba.conf记录,所以这些记录的顺序是非常关键的。通常,

[转帖]postgresql 物理备份 barman 之 安装

os: ubuntu 16.04postgresql: 9.6.8barman: 2.5 ip 规划 192.168.56.101 node1 barman192.168.56.102 node2 postgresql barman 是2ndquadrant推出的一款 postgresql 开源备份

[转帖]PostgreSQL的MVCC vs InnoDB的MVCC

任何一个数据库最主要功能之一是可扩展。如果不删除彼此,则尽可能较少锁竞争从而达到这个目的。由于read、write、update、delete是数据库中最主要且频繁进行的操作,所以并发执行这些操作时不被阻塞则显得非常重要。为了达到这种目的,大部分数据库使用多版本并发控制(Multi-Version

[转帖]以 PostgreSql 为例,说明生产级别数据库安装要考虑哪些问题?

https://xie.infoq.cn/article/487b467b952683e6dd27d9061 我让公司的小伙伴写一个生产级别的 PostgreSQL 的安装文档,结果他和我说:“不是用一个命令就能安装好么?还用写文档么?”。我知道他想说的是这个命令:yum install postg

[转帖]以 PostgreSql 为例,说明生产级别数据库安装要考虑哪些问题?

作者:字母哥哥 2022-08-25 吉林 本文字数:4728 字 阅读完需:约 16 分钟 我让公司的小伙伴写一个生产级别的 PostgreSQL 的安装文档,结果他和我说:“不是用一个命令就能安装好么?还用写文档么?”。我知道他想说的是这个命令:yum install postgresql-se

[转帖]PostgreSQL配置文件--WAL

2022-12-23 3.1 Settings 3.1.1 fsync 字符串 默认: fsync = on 开启后强制把数据同步更新到磁盘,可以保证数据库将在OS或者硬件崩溃的后恢复到一个一致的状态。 虽然关闭,可以提升数据库性能,但无法保证数据库崩溃后数据一致性。 通常情况下需要打开这个参数,除

[转帖]用sysbench进行数据库OLTP基准测试

https://www.cnblogs.com/ariesblog/p/13847740.html 基于TPC-C的OLTP基准测试,对比Mysql和PostgreSQL的性能 一、什么是TPC-C和tpmC 1、TPC-C TPC-C是一种旨在衡量联机事务处理(OLTP)系统性能与可伸缩性的行业标