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),主机
名称以 .开头,samehost或samenet 匹配任意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数据库
相关文章:
postgresql pg_hba.conf 配置详解
配置文件之pg_hba.conf介绍 该文件用于控制访问安全性,管理客户端对于PostgreSQL服务器的访问权限,内容包括:允许哪些用户连接到哪个数据库,允许哪些IP或者哪个网段的IP连接到本服务器,以及指定连接时使用的身份验证模…...
使用粗糙贴图制作粗纹皮革手提包3D模型
在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 当谈到游戏角色的3D模型风格时,有几种不同的风格…...
Chrome清除特定网站的Cookie,从而让网址能正常运行(例如GPT)
Chrome在使用某些网址的时候,例如GPT的时候,可能会出现无法访问这个网址的情况,就是点不动啥的 只需要把你需要重置的网址删除就好了...
history路由解决刷新出现404的问题
本文具体重点介绍怎么解决浏览器路由(history模式)解决404的问题。 在项目打包上线时,如果采用的是哈希模式,不会出现404,原因是 url 中 # 号后面的内容不会发给后端当作资源路径请求服务器。 具体流程(哈…...
ubuntu22下使用nvidia 2080T显卡部署pytorch
1.直接到NVIDA官网下载相应的驱动,然后安装官方驱动 | NVIDIA 2.下载相应版本cuda,并安装,安装时不安装驱动 3.conda install pytorch2.1.0 torchvision0.16.0 torchaudio2.1.0 pytorch-cuda12.1 -c pytorch -c nvidia 安装pytorch。 安装…...
【Spark基础】-- 理解 Spark shuffle
目录 前言 1、什么是 Spark shuffle? 2、Spark 的三种 shuffle 实现 3、参考 前言 以前,Spark 有3种不同类型的 shuffle 实现。每种实现方式都有他们自己的优缺点。在我们理解 Spark shuffle 之前,需要先熟悉 Spark 的 execution model 和一些基础概念,如:MapReduce、…...
软件测试入门:静态测试
什么是静态测试 顾名思义,这里的静态是指程序的状态,即在不执行代码的情况下检查软件应用程序中的缺陷。进行静态测试是为了仅早在开发的早期阶段发现程序缺陷,因为这样可以更快速地识别缺陷并低成本解决缺陷,它还有助于查找动态测…...
力扣labuladong一刷day30天二叉树
力扣labuladong一刷day30天二叉树 文章目录 力扣labuladong一刷day30天二叉树一、654. 最大二叉树二、105. 从前序与中序遍历序列构造二叉树三、106. 从中序与后序遍历序列构造二叉树四、889. 根据前序和后序遍历构造二叉树 一、654. 最大二叉树 题目链接:https://…...
【云原生-K8s】检查yaml文件安全配置kubesec部署及使用
基础介绍基础描述特点 部署在线下载百度网盘下载安装 使用官网样例yamlHTTP远程调用安全建议 总结 基础介绍 基础描述 Kubesec 是一个开源项目,旨在为 Kubernetes 提供安全特性。它提供了一组工具和插件,用于保护和管理在 Kubernetes 集群中的工作负载和…...
LeetCode力扣每日一题(Java):20、有效的括号
一、题目 二、解题思路 1、我的思路 我看到题目之后,想着这可能是力扣里唯一一道我能秒杀的题目了 于是一波操作猛如虎写出了如下代码 public boolean isValid(String s) {char[] c s.toCharArray();for(int i0;i<c.length;i){switch (c[i]){case (:if(c[i]…...
解决Flutter运行报错Could not run build/ios/iphoneos/Runner.app
错误场景 更新了IOS的系统版本为最新的17.0, 运行报以下错误 Launching lib/main.dart on iPhone in debug mode... Automatically signing iOS for device deployment using specified development team in Xcode project: GN3DCAF71C Running Xcode build... Xcode build d…...
配置Smart Link主备备份示例
目录 实验拓扑 组网需求 配置思路 配置步骤 1.配置VLAN信息 2.在SwitchA上创建Smart Link备份组,并指定端口角色 3.使能回切功能并设置回切时间 4.使能发送Flush报文功能 5.使能接受Flush报文功能 验证配置结果 实验拓扑 组网需求 如上图所示,…...
03-微服务架构构建之微服务拆分
文章目录 前言一、微服务拆分的原则二、微服务拆分的时机三、微服务拆分的方法总结 前言 微服务架构是将一个单体应用程序拆分为一个个独立且保持松耦合的服务的一种架构方式,每个服务有着独立的数据库并且能独立运行部署。微服务架构的构建过程中,第一…...
Linus:我休假的时候也会带着电脑,否则会感觉很无聊
目录 Linux 内核最新版本动态 关于成为内核维护者 代码好写,人际关系难处理 内核维护者老龄化 内核中 Rust 的使用 关于 AI 的看法 参考 12.5-12.6 日,Linux 基金会组织的开源峰会(OSS,Open Source Summit)在日…...
快速排序的新用法
普通快排 简介 快速排序是一种高效的排序算法,利用分治的思想进行排序。它的基本原理是在待排序的n个数据中任取一个数据为分区标准,把所有小于该排序码的数据移到左边,把所有大于该排序码的数据移到右边,中间放所选记录&#x…...
利用乔拓云SAAS系统,快速、高效搭建小程序
a-service,软件即服务)系统来搭建他们的微信小程序。SAAS系统作为一种创新的软件应用模式,将软件作为一种服务提供给用户,为用户提供了更高效、更便捷的解决方案。本文将探讨为什么越来越多的商家选择使用乔拓云这种SAAS系统搭建小…...
Kubernetes(K8s 1.27.x) 快速上手+实践,无废话纯享版
文章目录 1 基础知识1.1 K8s 有用么?1.2 K8s 是什么?1.3 k8s 部署方式1.4 k8s 环境解析 2 环境部署2.1 基础环境配置2.2 容器环境操作2.3 cri环境操作2.4 harbor仓库操作2.5 k8s集群初始化2.6 k8s环境收尾操作 3 应用部署3.1 应用管理解读3.2 应用部署实…...
非常抱歉的通知
非常感谢有这么多的同志向我提问一些问题,也非常感谢很多的同志可以看我的学习文章,这次大概有四五个月没有上csdn,看到了许多同志的疑问和慰问,我也很感动,但是由于我自己以及其他的原因,我现在打算以考编…...
rust 包模块组织结构
一个包(package)可以拥有多个二进制单元包及一个可选的库单元包。随着包内代码规模的增长,你还可以将代码拆分到独立的单元包(crate)中,并将它作为外部依赖进行引用。 RUST提供了一系列的功能来帮助我们管…...
深入浅出:HTTPS单向与双向认证及证书解析20231208
介绍: 网络安全的核心之一是了解和实施HTTPS认证。本文将探讨HTTPS单向认证和双向认证的区别,以及SSL证书和CA证书在这些过程中的作用,并通过Nginx配置实例具体说明。 第一部分:HTTPS单向认证 定义及工作原理:HTTPS单向认证是一…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...
多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用
一、方案背景 在现代生产与生活场景中,如工厂高危作业区、医院手术室、公共场景等,人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式,存在效率低、覆盖面不足、判断主观性强等问题,难以满足对人员打手机行为精…...
【Linux】自动化构建-Make/Makefile
前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具:make/makfile 1.背景 在一个工程中源文件不计其数,其按类型、功能、模块分别放在若干个目录中,mak…...
AI语音助手的Python实现
引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...
C++实现分布式网络通信框架RPC(2)——rpc发布端
有了上篇文章的项目的基本知识的了解,现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...
