PostgreSQL04-配置文件

全局配置文件

postgresql.conf 配置文件主要负责配置文件位置、资源限制、集群复制等
pg_hba.conf 文件则负责客户端的连接和认证

pg_hba.conf详解

TYPE(允许的连接方式)
    local:使用Unix域套接字连接
    host:匹配使用TCP/IP建立的连接,同时匹配SSL和非SSL连接。默认安装只监听本地环回地址localhost的连接 ,不允许使用TCP/IP远程连接,启用远程连接需要修改postgresql.conf中的listen_addresses参数
    hostssl:匹配必须是使用SSL的TCP/IP连接。配置hostssl有三个前提条件:
             1.客户端和服务端都安装OpenSSL;
             2.编译PostgreSQL的时候指定configure参数--with-openssl打开SSL支持;
             3.在postgresql.conf中配置ssl=on
    hostnossl:和hostssl相反,它只匹配使用非SSL的TCP/IP连接

DATABASE(目标数据库名)
数据库名,可以是"all", "sameuser", "samerole", "replication"。all表示所有,但不包括replication。多个数据库用“,”隔开

USER(目标用户名)
用户名,可以为"all",表示所有,也可以具体指定一个用户。多个用户用“,”隔开

ADDRESSIP地址和掩码)
可以是一个主机名,或者IP+掩码。掩码0-32(IPv4)或者0-128(IPv6)
主机名以“.”开头。samehost可以匹配所有主机、samenet可以匹配同一个掩码内的所有主机。
192.168.10.122/32表示单一主机,
192.168.10.0/24表示10网段的所有主机
0.0.0.0/0表示所有主机。

METHOD(认证方法)
密码加密策略,password表示以明文方式发送密码,md5和scram-sha-256会以对应的方式加密再发送密码。

修改postgresql.conf

通过alter system命令修改全局配置文件
命令会自动修改postgresql.auto.conf文件,数据库启动时会加载该文件,并覆盖postgresql.conf
alter system set listen_addresses = "*";

非全局配置文件的修改

设置和重置 Database 级别的配置
ALTER DATABASE name SET config_parameter { TO | = } { value | DEFAULT }
ALTER DATABASE name RESET configuration

设置和重置 Session 级别的配置
通过 SET 命令设置当前 Session 的配置
SET config_parameter { TO | = } { value | DEFAULT }
SET config_parameter TO DEFAULT;

更新 pg_settings 视图
UPDATE pg_settings SET setting = new_value WHERE name = 'config_parameter';
UPDATE pg_settings SET setting = reset_val WHERE name = 'config_parameter';

使用 set_config 函数更新会话配置
SELECT set_config('configparameter', new_value, false);

设置和重置 Role 级别的配置
ALTER ROLE name IN DATABASE database_name SET config_parameter { TO | = } { value | DEFAULT }
ALTER ROLE name IN DATABASE database_name RESET config_parameter

查看配置

SELECT name,setting FROM pg_settings where name ~ 'xxxx';
SELECT current_setting('name');
show all;

配置生效

如果是不需要重启的参数,reload 一次就可以生效
select pg_reload_conf();
或
/opt/pgsql/bin/pgctl -D /pgdata/10/data reload
posted @   立勋  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示