`
lykops
  • 浏览: 86322 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

postgres访问认证配置文件pg_hba.conf

 
阅读更多
pg_hba.conf(默认位于/var/lib/pgsql/10/data/pg_hba.conf)是设置访问认证的主要文件,格式为每条记录一行,每行指定一条访问认证。
设定一条访问认证包含了5个部分:连接方式(type)、数据库(database)、用户名(user)、IP地址、认证方法(authentication method)。

连接方式(type)
共有三种:local、host、hostssl、hostnossl
local使用本地unix套接字
host使用TCP/IP连接(包括SSL和非SSL),“host”结合“IPv4地址”使用IPv4方式,结合“IPv6地址”则使用IPv6方式
hostssl只能使用SSL TCP/IP连接
hostnossl不能使用SSL TCP/IP连接

数据库(database)
声明允许访问的数据库,多个数据库,库名间以逗号分隔。
all表明该记录匹配所有数据库
all只有在没有其他的符合条目时才代表“所有”,如果有其他的符合条目则代表“除了该条之外的”,因为“all”的优先级最低。

用户名(user)
USER指定哪个数据库用户(PostgreSQL正规的叫法是角色,role)。
多个用户以逗号分隔。
组名字可以通过用+做组名字前缀来声明。一个包含用户名的文件可以 通过在文件名前面前缀 @ 来声明,该文件必需和 pg_hba.conf 在同一个目录。

local db1 user1 reject
local all all ident
这两条都是指定local访问方式,因为前一条指定了特定的数据库db1,所以后一条的all代表的是除了db1之外的数据库,同理用户的all也是这个道理。


CIDR-ADDRESS
格式为ip-address/mask
采用local连接方式不必填写,该项可以是IPv4地址或IPv6地址,可以定义某台主机或某个网段。

认证方法(authentication method)
METHOD指定如何处理客户端的认证。常用的有ident,md5,password,trust,reject。
ident
ident是Linux下PostgreSQL默认的local认证方式,凡是能正确登录服务器的OS用户(注:不是数据库用户)就能使用本用户映射的数据库用户不需密码登录数据库。
用户映射文件为pg_ident.conf,这个文件记录着与OS用户匹配的数据库用户,如果某OS用户在本文件中没有映射用户,则默认的映射数据库用户与操作系统用户同名。
比如,服务器上有名为user1的操作系统用户,同时数据库上也有同名的数据库用户,user1登录操作系统后可以直接输入psql,以user1数据库用户身份登录数据库且不需密码。
很多初学者都会遇到psql -U username登录数据库却出现“username ident 认证失败”的错误,明明数据库用户已经createuser。
原因就在于此,使用了ident认证方式,却没有同名的操作系统用户或没有相应的映射用户。解决方案:1、在pg_ident.conf中添加映射用户;2、改变认证方式。
md5
md5是常用的密码认证方式,如果你不使用ident,最好使用md5。密码是以md5形式传送给数据库,较安全,且不需建立同名的操作系统用户。
password
password是以明文密码传送给数据库,建议不要在生产环境中使用。
trust
trust是只要知道数据库用户名就不需要密码或ident就能登录,建议不要在生产环境中使用。
reject
reject是拒绝认证
分享到:
评论

相关推荐

    pg_hba.conf

    可以直接粘贴,让服务器的数据库直接访问。

    应用层PostgreSQL数据库安装步骤.zip

    复制以上文件 pg_hba.conf 和 postgresql.conf ,并替换 /home/data/pgsql/data 下对应的文件 并根据当前服务器内存大小更改 postgresql.conf 中的 shared_buffered 参数(如果是数据库服务器,建议设置为总内存的...

    Linux怎么设置PostgreSQL远程访问

    安装PostgreSQL数据库之后,默认是只接受本地访问连接。如果想在其他主机上访问PostgreSQL数据库服务器,...修改pg_hba.conf文件,配置用户的访问权限(#开头的行是注释内容):  # TYPE DATABASE USER CIDR-ADDRE

    centos7下Postgres13安装包带依赖,附安装脚本

    4. 配置`pg_hba.conf`和`postgresql.conf`以设置访问权限和性能参数。 5. 初始化数据库集群:`/usr/pgsql-13/bin/initdb -D /var/lib/pgsql/13/data` 6. 修改PostgreSQL服务配置,例如设置开机启动:`systemctl ...

    Postgresql开启远程访问的步骤全纪录

    `pg_hba.conf` 文件定义了哪些主机或网络可以访问数据库。你需要在此文件中添加条目,授权你希望允许远程连接的 IP 地址或地址段。 例如,如果你想允许 192.168.1.0/24 子网的所有主机访问,你可以添加如下行: ...

    linux搭建postgresql、postgis、pg_pathman环境步骤以及需要的软件包

    - 修改`pg_hba.conf`以添加认证规则,允许用户访问数据库(替换`your_username`和`your_network`): ``` host all your_username your_network/32 md5 ``` - 重启PostgreSQL服务以应用更改: ```bash sudo ...

    docker-postgresql:Docker postgresql 容器

    首先你的配置文件ph_hba.conf和postgresql.conf对PostgreSQL 默认更改为: 在postresql.conf : data_directory = '/data' listen_addresses = '*' 在pg_hba.conf : host all all 0.0.0.0/0 md5 然后在...

    linux中pg11的包

    - 配置`pg_hba.conf`以指定允许哪些主机或用户连接。 9. **性能调优**: - 调整`shared_buffers`、`work_mem`等参数以优化内存使用。 - 使用`EXPLAIN`分析查询计划,优化SQL语句。 10. **安全措施**: - 定期...

    postgresql安装包

    7. **远程连接**:如果需要远程访问,还需修改`pg_hba.conf`文件,添加允许连接的主机。同时,确保PostgreSQL服务监听所有IP或特定IP。 8. **备份与恢复**:定期备份数据库非常重要。可以使用`pg_dump`和`pg_...

    PostgreSQL-9.5.5解压后将内容上传到linux服务器.zip

    sudo cp /usr/local/pgsql/share/postgresql/pg_hba.conf.sample /usr/local/pgsql/data/pg_hba.conf sudo chown -R postgres:postgres /usr/local/pgsql/data sudo systemctl enable postgresql sudo systemctl...

    转:LINUX POSTGRESQL测试库配置

    `pg_hba.conf`是访问控制文件,`postgresql.conf`是主配置文件。打开这些文件,调整相应的设置: ```bash sudo nano /etc/postgresql/<version>/main/pg_hba.conf sudo nano /etc/postgresql/<version>/main/...

    GPU数据库PG_strom的安装及使用

    - 配置信任连接: 修改 `/usr/pgsql-9.5/data/pg_hba.conf` 文件,允许特定服务器进行远程连接。 ##### 6. 设置开机启动 - 开机启动服务: `systemctl enable postgresql-9.5.service`。 - 启动服务: `systemctl start...

    ssmu-powerlifting-play:[未维护] ssmu 举重俱乐部网站

    SSMU 力量举网站 ssmu 举重俱乐部网站,...编辑 pg_hba.conf 文件 find / -name "pg_hba.conf" 将点更改为 md5 创建数据库 CREATE DATABASE ssmu-powerlifting 创建表 psql -U postgres -d ssmupowerlifting -a

    timescaledb2.3.1+pg11.7 for Centos7安装包及依赖包

    这个过程中,"timedb2.3.1"和"pg11.7"可能指的是相关的安装日志或配置文件,它们对于安装过程的监控和问题排查至关重要。在安装完成后,保留这些文件可以帮助未来进行问题诊断或回溯。 总结,安装TimescaleDB 2.3.1...

    postgresql远程连接

    为了让其他机器能够远程访问PostgreSQL数据库,需要修改`postgresql.conf`和`pg_hba.conf`两个配置文件。 1. **编辑postgresql.conf** 打开`postgresql.conf`文件,设置监听地址和端口号: ``` sudo vi /home/y...

    postgresql安装部署手册

    然后,用户需要修改 pg_hba.conf 文件,命令为: vi /var/lib/pgsql/11/data/pg_hba.conf host all all 0.0.0.0/0 md5 7. 重启 PostgreSQL 服务 在配置完成后,需要重启 PostgreSQL 服务。命令为: sudo ...

    postgresql14加postgis3.2在centos离线编译安装

    sudo cp /usr/local/pgsql/share/postgresql/pg_hba.conf.sample /etc/postgresql/pg_hba.conf sudo systemctl enable postgresql sudo /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data stop ``` 至此,你...

Global site tag (gtag.js) - Google Analytics