postgresql pg_hba.conf 配置详解

配置文件之pg_hba.conf介绍

该文件用于控制访问安全性,管理客户端对于PostgreSQL服务器的访问权限,内容包括:允许哪些用户连接到哪个数据库,允许哪些IP或者哪个网段的IP连接到本服务器,以及指定连接时使用的身份验证模式。

pg_hba.conf 配置详解

TYPE 参数设置

TYPE 表示主机类型,值可能为:

若为 local 表示是unix-domain的socket连接,

若为 host 是TCP/IP socket

若为 hostssl 是SSL加密的TCP/IP socket

DATABASE 参数设置

DATABASE 表示数据库名称,值可能为:

all ,sameuser,samerole,replication,数据库名称 ,或者多个

数据库名称用 逗号,注意ALL不匹配 replication

USER 参数设置

USER 表示用户名称,值可以为:

all,一个用户名一组用户名 ,多个用户时,可以用 ,逗号隔开,

或者在用户名称前缀 + ;在USER和DATABASE字段,也可以写一个单独的

文件名称用 @ 前缀,该文件包含数据库名称或用户名称

ADDRESS 参数设置

该参数可以为 主机名称 或者IP/32(IPV4) IP/128(IPV6),主机

名称以 .开头,samehostsamenet 匹配任意Ip地址

METHOD 参数设置

该值可以为

"trust", "reject", "md5", "password", "scram-sha-256",
"gss", "sspi", "ident", "peer", "pam", "ldap", "radius" or "cert"

注意 若为password则发送的为明文密码

加载配置文件、生效

修改该配置文件中的参数,必须重启 postgreSql服务,若要允许其它IP地址访问该主机数据库,则必须修改 postgresql.conf 中的参数 listen_addresses*

重启:

pg_ctl reload 或者 执行 SELECT pg_reload_conf()

配置实例参考

配置以下参数

# TYPE DATABASE USER  ADDRESS   METHOD
host all  all  10.10.56.17/32  md5

参数说明

host 参数表示安装PostgreSQL的主机all 第一个all 表示该主机上的所有数据库实例all 第二个all 表示所有用户10.10.56.17/32 表示需要连接到主机的IP地址,32表示IPV4md5 表示验证方式

即上述表示允许IP地址为10.10.56.17的所有用户可以通过MD5的密码验证方式连接主机上所有的数据库

也可以指定具体的数据库名称和用户

# TYPE DATABASE USER  ADDRESS   METHOD
host test  pgtest  10.10.56.17/32  md5
即表示允许地址为 10.10.56.17 的用户 pgtest通过 MD5方式 加密的密码方式连接主机上的 test 数据库

也可以指定整个网段

# TYPE DATABASE USER  ADDRESS   METHOD
host test  pgtest  0.0.0.0/0  md5

即表示允许 任意iP 通过用户名为 pgtest 和md5的 密码 验证方式连接主机上 test 的数据库

不进行密码验证

# TYPE DATABASE USER  ADDRESS   METHOD
host test  pgtest  0.0.0.0/0  trust

表示任意IP地址的用户 pgtest 无需密码验证可直接连接访问该主机的 test 数据库

补充:postgresql配置文件pg_hba.conf配置、修改postgresql超级用户的密码

postgresql设置了用户名和密码,却发现不输入密码、或者密码输错都能登录。于是在网上查,知道了原来是配置文件pg_hba.conf的问题。

1.修改pg_hba.conf文件,使得数据库认证方式为加密登录

以下命令可以查找pg_hba.conf的路径

[root@localhost ~]# find / - name pg_hba.conf

进入到该配置文件中

[root@localhost ~]# vi /home/postgres/pgsql/data/pg_hba.conf

发现配置文件中内容是全部注释掉的,如下:

# local DATABASE USER METHOD [OPTIONS]
# host DATABASE USER ADDRESS METHOD [OPTIONS]
# hostssl DATABASE USER ADDRESS METHOD [OPTIONS]
# hostnossl DATABASE USER ADDRESS METHOD [OPTIONS]

以上相当于postgreql用户可以免密登录,在末尾加上

host all all 0.0.0.0/0 md5

要求客户端提供一个 MD5 加密的口令进行认证,即必须有密码才能登录

修改完pg_hba.conf文件后保存退出,输入命令使配置生效

(1) 第一种生效方法

[root@localhost data]# service postgresql reload

以上命令执行后会出现以下提示信息:

Reload PostgreSQL: OK

说明pg_hba.conf配置文件的 修改已生效。

(2) 第二种生效方法

备注:隔几天后准备更改另外一台服务器的连接验证方式,发现用以上方法对pg_hba.conf的修改生效时报错。具体报错如下:

[root@localhost data]# service postgresql reload
postgresql: unrecognized service

在网上查资料后,进行以下尝试。

① 切换到postgres用户

[root@localhost ~]# su - postgres 
-bash-4.1$ pwd
/var/lib/pgsql
-bash-4.1$ ls
-bash-4.1$ 9.5
-bash-4.1$ cd *
-bash-4.1$ ls
backups data pgstartup.log

②使用pg_ctl命令对文件生效

-bash-4.1$ ./pg_ctl reload
pg_ctl: no database directory specified and environment variable PGDATA unset 
Try "pg_ctl --help" for more information.

报错如上,需要在reload后添加data文件夹所在的路径

-bash-4.1$ ./pg_ctl reload -D /var/lib/pgsql/9.5/data
server signaled

出现以上提示:server signaled时说明配置生效

修改postgresql默认超级用户postgres的密码

首先以postgres用户登录postgresql数据库

[root@localhost ~]# sudo -u postgres psql

接着修改postgresql的登录密码,结尾必须有分号";",否则修改无效,执行命令后也不会出现ALTER ROLE。

postgres =# alter user postgres with password '****';

以上命令执行后,会出现

ALTER ROLE

说明修改生效,接着退出postgresql

postgres =# \q

到此超级用户postgres的密码修改完成,可在pgAdmin客户端进行验证。

指定用户可访问的数据库pg_hba.conf

在这里插入图片描述

以上配置为所有IP及网关都允许访问,使用MD5认证。

postgres用户可访问所有数据库

bret用户仅允许访问community、community2数据库

weather用户仅允许访问weather数据库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/210625.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode—205.同构字符串【简单】

2023每日刷题&#xff08;五十&#xff09; Leetcode—205.同构字符串 算法思想 参考自k神思路 实现代码 class Solution { public:unordered_map<char, char> s2t, t2s;bool isIsomorphic(string s, string t) {int n s.size();for(int i 0; i < n; i) {char …

梦回吹角连营(2)(快速幂快乘)

Description 给定f(n)(a1)*n^a(a2)*n^(a1)...b*n^(b-1) 求f(n)%10000000033 Input 输入一个正整数T(T<10),表示有T组数据&#xff0c;每组数据包括三个整数a,b,n (0<n<10^9,1<a < b-1<10^20) Output 输出 f(n)%10000000033 的结果 Sample Input 1 1 2…

抽奖.html(网上收集8)

<!doctype html> <html> <head><meta charset"utf-8"><title>在线抽奖 随机选取 自动挑选</title><script src"https://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script><style>body {backg…

基于Springboot的秒杀系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的秒杀系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xf…

【Linux】ln命令使用

ln命令 ln是linux中又一个非常重要命令&#xff0c;请大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同步的链接&#xff0c;这个命令最常用的参数是-s&#xff0c;具体用法是&#xff1a;ln –s 源文件 目标文件。 当我们需要在不同的目录&#xff0c;用到相…

【4】PyQt输入框

1. 单行文本输入框 QLineEdit控件可以输入单行文本 from PyQt5.QtWidgets import QApplication, QWidget, QLineEdit, QVBoxLayout from PyQt5.QtCore import * from PyQt5.QtGui import QIcon import sysdef init_widget(w: QWidget):# 修改窗口标题w.setWindowTitle(单行输…

【Spark入门】基础入门

【大家好&#xff0c;我是爱干饭的猿&#xff0c;本文重点介绍Spark的定义、发展、扩展阅读&#xff1a;Spark VS Hadoop、四大特点、框架模块、运行模式、架构角色。 后续会继续分享其他重要知识点总结&#xff0c;如果喜欢这篇文章&#xff0c;点个赞&#x1f44d;&#xff…

【Openstack Train安装】五、Memcached/Etcd安装

本文介绍Memcached/Etcd安装步骤&#xff0c;Memcached/Etcd仅需在控制节点安装。 在按照本教程安装之前&#xff0c;请确保完成以下配置&#xff1a; 【Openstack Train安装】一、虚拟机创建 【Openstack Train安装】二、NTP安装 【Openstack Train安装】三、openstack安装…

持续集成交付CICD:CentOS 7 安装 Sonarqube9.6

目录 一、实验 1.CentOS 7 安装 Sonarqube9.6 二、问题 1.安装postgresql13服务端报错 2.postgresql13创建用户报错 3.bash: sonar-scanner: 未找到命令 一、实验 1.CentOS 7 安装 Sonarqube9.6 &#xff08;1&#xff09;下载软件及依赖包 ①Sonarqube9.6下载地址 h…

C/C++,图算法——求强联通的Tarjan算法之源程序

1 文本格式 #include <bits/stdc.h> using namespace std; const int maxn 1e4 5; const int maxk 5005; int n, k; int id[maxn][5]; char s[maxn][5][5], ans[maxk]; bool vis[maxn]; struct Edge { int v, nxt; } e[maxn * 100]; int head[maxn], tot 1; vo…

Vellum —— 相关特点

目录 Cloth Breaking and tearing Paneling and draping Cloth simulation Calculating mass and thickness Working with low res and high res cloth Quick moving cloth Softbody Vellum softbodies Plasticity with softbodies Constraints Stitch and slid…

Centos7 制作Openssh9.5 RPM包

Centos7 制作Openssh9.5 RPM包 最近都在升级Openssh版本到9.3.在博客里也放了openssh 9.5的rpm包. 详见:https://blog.csdn.net/qq_29974229/article/details/133878576 但还是有小伙伴不停追问这个rpm包是怎么做的,怕下载别人的rpm包里被加了盐. 于是做了个关于怎么用官方的o…

yolov8添加ca注意力机制

创建文件 coordAtt.py 位置&#xff1a;ultralytics/nn/modules/coordAtt.py ###################### CoordAtt #### start by AI&CV ############################### # https://zhuanlan.zhihu.com/p/655475515 import torch import torch.nn as nn import t…

2023年【A特种设备相关管理(锅炉压力容器压力管道)】考试内容及A特种设备相关管理(锅炉压力容器压力管道)复审考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 A特种设备相关管理&#xff08;锅炉压力容器压力管道&#xff09;考试内容根据新A特种设备相关管理&#xff08;锅炉压力容器压力管道&#xff09;考试大纲要求&#xff0c;安全生产模拟考试一点通将A特种设备相关管理…

使用 async/await 是必须避免的陷阱

使用 async/await 是必须避免的陷阱 如果我们使用过 nodejs&#xff0c;那么我们可能已经在 javaSoript 中使用了异步操作。异步任务是一个独立于 JavaSoript 引擎的主线程执行的操作。从本质上讲&#xff0c;这就是应用程序功能没有阻塞的 UI 的原因。 nodejs 的单线程性质&a…

外包干了2个月,技术明显退步了...

先说一下自己的情况&#xff0c;大专生&#xff0c;19年通过校招进入广州某软件公司&#xff0c;干了接近5年的功能测试&#xff0c;今年11月份&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测…

kubectl获取命名空间下所有configmap集合的方法

前言&#xff1a; 获取单个configmap并忽略特定字段的操作可参照&#xff1a;kubectl获取ConfigMap导出YAML时如何忽略某些字段。 要获取命名空间下所有ConfigMap并忽略特定字段&#xff0c;你可以使用kubectl命令与例如yq这样的工具结合使用来忽略或删除不需要的字段。以下是…

MYSQL8用户权限配置详解

单位的系统性能问题需要把Mysql5升级到Mysql8&#xff0c;需要用到Mysql8的一些特性来提升系统的性能。 配置用户权限过程中发现一些问题&#xff0c;学习并记录一下。 目录 一、环境 二、MySQL8 用户权限 2.1 账号管理权限 2.1.1 连接数据库 2.1.2 账号权限配置 2.2 密码…

深信服AD负载均衡频繁掉线故障分析

一个由114.114.114.114引起的AD异常 客户反馈深信服负载均衡链路频繁掉线&#xff0c;具体故障现象如下 可以获取到IP地址、网关 两分钟掉一次&#xff0c;持续一个多月&#xff0c;求IT的心理阴影面积&#xff01; 链路监视器只设置了一个114.114.114.114 处理流程&#xff…

15:00的面试,15:06就出来了,问的问题过于变态了。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到5月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…