当前位置: 首页 > news >正文

pg_hba.conf配置里peer,indent和md5的区别

在 PostgreSQL 的 pg_hba.conf配置文件中,peer、ident和 md5是三种不同的认证方法。以下是它们的详细区别:
1. peer​ 认证方法
特点:
仅适用于本地连接(local connection type)
基于操作系统用户身份进行认证
不需要密码
工作原理:
PostgreSQL 检查连接客户端的操作系统用户名是否与请求的数据库用户名匹配
如果匹配,则允许连接
配置示例:
local   all     all                 peer
使用场景:
# 客户端操作系统用户 = postgres,数据库用户 = postgres
sudo -u postgres psql# 这会成功,因为操作系统用户和数据库用户都是 postgres# 如果尝试:
sudo -u root psql -U postgres
# 这会失败,因为操作系统用户(root) ≠ 数据库用户(postgres)
2. ident​ 认证方法
特点:
适用于本地和主机连接
通过 ident 协议检查客户端操作系统的用户身份
不需要密码
比 peer 更灵活,可以配置用户名映射
工作原理:
连接到 ident 服务器(通常运行在客户端)验证用户名
可以使用用户名映射
配置示例:
host    all     all     127.0.0.1/32    ident
host    all     all     ::1/128         ident
使用场景:
# 允许从本地主机连接,使用 ident 认证
psql -h 127.0.0.1 -U postgres
用户名映射示例:
# 在 pg_ident.conf 中定义映射
# MAPNAME  SYSTEM-USERNAME  PG-USERNAME
mymap      root             postgres
mymap      wwwuser          webuser# 在 pg_hba.conf 中使用映射
host    all     all     127.0.0.1/32    ident map=mymap
3. md5​ 认证方法
特点:
需要密码认证
使用 MD5 哈希传输密码
适用于本地和远程连接
密码在传输前进行哈希,相对安全
工作原理:
客户端发送用户名
服务器发送随机 salt
客户端计算密码的 MD5 哈希并发送
服务器验证哈希值
配置示例:
host    all     all     0.0.0.0/0       md5
使用场景:
# 需要输入密码
psql -h 192.168.1.100 -U myuser -d mydb
# 密码: ********
三种方法的对比表格
特性
peer
ident
md5
适用连接类型​
仅本地
本地和主机
本地和主机
是否需要密码​
否
否
是
认证基础​
操作系统用户
ident 协议
数据库密码
安全性​
中(本地)
中
中(加密传输)
使用复杂度​
简单
中等
简单
远程支持​
否
是
是
4. scram-sha-256(现代推荐替代 md5)
特点:
最安全的密码认证方法
使用 SCRAM-SHA-256 协议
抵抗各种攻击(包括中间人攻击)
配置示例:
host    all     all     0.0.0.0/0       scram-sha-256
实际配置示例
开发环境配置:
# TYPE  DATABASE  USER  ADDRESS      METHOD# 本地 socket 连接使用 peer(方便)
local   all       all                 peer# 本地 TCP 连接使用 md5(需要密码)
host    all       all   127.0.0.1/32  md5# 局域网连接使用 md5
host    all       all   192.168.1.0/24 md5# 远程连接使用更安全的 scram-sha-256
host    all       all   0.0.0.0/0     scram-sha-256
生产环境安全配置:
# 本地管理连接
local   all       postgres              peer# 应用本地连接
host    appdb     appuser   127.0.0.1/32  scram-sha-256# 特定IP的管理连接
host    all       admin     192.168.1.100/32 scram-sha-256# 拒绝其他所有连接
host    all       all       0.0.0.0/0        reject
认证方法选择指南
选择 peer 当:
只有本地连接
客户端和数据库在同一台机器
希望免密码登录
开发环境
选择 ident 当:
需要用户名映射功能
网络环境可控
客户端支持 ident 协议
选择 md5/scram-sha-256 当:
需要远程连接
需要密码认证
生产环境
推荐使用 scram-sha-256(更安全)
修改认证方法后的操作
# 1. 修改 pg_hba.conf
sudo vim /var/lib/pgsql/data/pg_hba.conf# 2. 重新加载配置(不重启服务)
sudo systemctl reload postgresql# 或者重启服务
sudo systemctl restart postgresql# 3. 测试连接
psql -U username -h hostname -d database
总结:对于现代应用,推荐使用 scram-sha-256替代 md5,本地管理连接可以使用 peer,以获得最佳的安全性和便利性平衡。

 

http://www.jsqmd.com/news/37743/

相关文章:

  • 基于Simulink的双电机PID控制仿真实现方案
  • 锡林郭勒西林瓶灌装清洗耗材月成本分析?查行情享优惠
  • AI Agent OS 探索有价值的论文分析(1):Sleep-time Compute
  • Linux内核架构浅谈26-Linux实时进程调度:优先级反转与解决实用的方案
  • 宏定义的高级应用
  • 被问性能后,我封装了这个 PHP 错误上报工具
  • 公众号中的贴纸素材有什么作用?在哪里找?
  • 国标GB28181算法算力平台EasyGBS:深度解析全场景视频调阅功能与行业实战应用
  • 2025出国留学机构综合实力榜:排名前十的留学中介特色分析
  • 公众号怎么起爆款标题?有什么好用的工具?
  • 邢台西林瓶灌装机优选指南:聚焦资质、案例与售后
  • 基于SpringBoot+Vue的个人理财系统管理系统设计与建立【Java+MySQL+MyBatis完整源码】
  • python使用PyInstaller打包成exe
  • 2025年机械磨优质厂家权威推荐榜单:冲击磨/小型机械磨/超微机械磨源头厂家精选
  • jQuery custom content scroller滚动条控件代码 - 教程
  • 【APIE出版 | EI检索快速稳定】2025年机电一体化与轨道、交通国际学术会议(MRT 2025)
  • 搭建第一个MCP服务
  • React-router v7 配置 Suspense+lazy fallback第二次不显示
  • spark read mongodb拉取的数据行数和源库不一致
  • PV 与 PVC 的“绑定”动作真正发生的时间点
  • 2025日本留学中介推荐:留学申请与语言学习一站式解决
  • 2025年11月高温老化房及环境试验设备推荐厂家:步入式恒温试验室/步入式高低温湿热试验室/大型高低温湿热试验室/汽车零部件、逆变器、电子元器件等场景适用
  • 【ACM出版 | 最快会后4个月检索 | 往届均已成功见刊并被EI检索】第三届人工智能、系统与网络安全国际学术会议 (AISNS 2025)
  • it的尽头是炒股
  • Windows 电脑 FTP 服务器配置
  • [量化01 线形 ]
  • 护栏碰撞报警系统工作原理是什么?传感器+数据传输全解析
  • 2025抗老面霜爆款推荐:功效全面升级,从 “成分堆砌” 到 “体系抗老”
  • AI 在数据库操作中的各类应用场景、方案与实践指南 - 指南
  • 国标GB28181算法算力平台EasyGBS:构建智慧鱼塘养殖远程监控与智能预警一体化方案