vic*_*nco 11 postgresql replication pg-hba.conf
我想pg_hba.conf
在发出复制启动命令之前测试提供者是否授权了复制连接,但不知道如何。(我可以访问两个节点上的 unix 和 postgresql shell)
对于非复制连接,我将psql
使用类似的连接字符串进行连接'host=$MASTER_IP port=5432 dbname=$DATABASE user=$DBUSER password=$DBPASSWORD'
上下文: 我正在编写一个脚本来自动设置服务器之间的复制,并且服务器的配置通过不同的系统/存储库(遗留原因)进行管理。因此,我想测试每一步的设置是否正确。
dez*_*zso 17
有一个非常方便的视图,称为pg_hba_file_rules
.
table pg_hba_file_rules ;
line_number ? type ? database ? user_name ? address ? netmask ? auth_method ? options ? error
?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
3 ? local ? {all} ? {all} ? ? ? trust ? ?
4 ? hostssl ? {all} ? {+users} ? 127.0.0.1 ? 255.255.255.255 ? pam ? ?
5 ? host ? {all} ? {all} ? 127.0.0.1 ? 255.255.255.255 ? md5 ? ?
6 ? hostssl ? {all} ? {+users} ? ::1 ? ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff ? pam ? ?
7 ? host ? {all} ? {all} ? ::1 ? ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff ? md5 ? ?
8 ? hostssl ? {replication} ? {standby} ? all ? ? md5 ? ?
9 ? hostnossl ? {all} ? {all} ? all ? ? reject ? ?
Run Code Online (Sandbox Code Playgroud)
对于早期版本,它有点麻烦且容易出错(并且仅适用于超级用户,请参阅注释)。
pg_hba.conf
我目前可以想象的唯一内置阅读方式是使用pg_read_file()
.
SELECT pg_read_file('pg_hba.conf');
Run Code Online (Sandbox Code Playgroud)
将在一行中返回整个文件,然后包含换行符(无论它们是您的操作系统喜欢的风格:
[...]
# TYPE DATABASE USER ADDRESS METHOD?
?
# "local" is for Unix domain socket connections only ?
local all all md5 ?
# IPv4 local connections: ?
host all all 127.0.0.1/32 md5 ?
[...]
Run Code Online (Sandbox Code Playgroud)
您可以根据自己的喜好进一步处理。
笔记:
该文件告诉我们如下:
表 9-86 [包含的 pg_read_file() - me ] 中显示的函数提供对托管服务器的机器上的文件的本机访问。只能访问数据库集群目录和 log_directory 中的文件。使用群集目录中文件的相对路径,以及与日志文件的 log_directory 配置设置匹配的路径。这些功能的使用仅限于超级用户。
当您设置复制时,关于超级用户的部分对您来说应该不是问题。如果pg_hba.conf
不在上述目录中,您可以向其添加符号链接以欺骗系统:
postgres@Z22309: cd /var/lib/postgresql/9.5/main
postgres@Z22309:~/9.5/main$ ln -s /etc/postgresql/9.5/main/pg_hba.conf pg_hba.conf
Run Code Online (Sandbox Code Playgroud)
pg_conf_load_time()
和pg_stat_file()
,如下图所示。同时,您仍然无法确切知道自上次重新加载以来进行了哪些更改。此外,如评论中所述,pg_conf_load_time()
即使加载文件不成功也会前进,导致混乱 - 至少我不知道如何判断重新加载是否成功。SELECT pg_read_file('pg_hba.conf');
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15953 次 |
最近记录: |