PostgreSQL数据库访问限制详解

        pg_hba.conf 文件是 PostgreSQL 数据库系统中非常重要的一个配置文件,它用于定义哪些用户(或客户端)可以连接到 PostgreSQL 数据库服务器,以及他们可以使用哪些认证方法进行连接。 pg_hba.conf 的名称来源于 "Host-Based Authentication"(基于主机的认证),它决定了基于客户端的IP地址、子网掩码、数据库名称、用户名和认证方法等因素的访问控制策略。

一、pg_hba.conf介绍

1、配置格式

pg_hba.conf 文件的每一行都定义了一条规则,格式如下:

# TYPE  DATABASE        USER            ADDRESS                 METHOD
# 允许用户本地连接到所有数据库,无需密码(风险较高,不建议使用)
local   all             all                                     trust# 允许来自 192.168.1.0/24 网段的任何用户通过TCP/IP连接到所有数据库,但需要密码
host    all             all             192.168.1.0/24          password# 允许所有用户通过TCP/IP连接到与其用户名相同的数据库,使用MD5加密的密码
host    sameuser        all             all                       md5# 允许用户dbuser通过TCP/IP连接到DB1数据库,使用MD5加密的密码
host    DB1        dbuser              all                       md5
  • TYPE:指定连接的类型,可以是 local(本地连接,通过Unix域套接字),host(TCP/IP连接,包括本地和远程),hostssl(要求SSL加密的TCP/IP连接),或 hostnossl(不允许SSL加密的TCP/IP连接,通常不推荐使用)。

  • DATABASE:指定数据库名称,可以是 all(所有数据库),sameuser(与用户名相同的数据库),samerole(与角色名相同的数据库),或者是具体的数据库名。

  • USER:指定用户名,可以是 all(所有用户),或者具体的用户名。

  • ADDRESS:指定客户端的IP地址或子网。可以是单个IP地址(如 192.168.1.1)、一个IP地址范围(如 192.168.1.0/24),或者 samehost(与服务器相同的主机),samenet(与服务器相同的子网),all(所有地址)。

  • METHOD:指定认证方法,可以是 trust(无条件信任,不需要密码),md5(使用MD5加密的密码),password(明文密码,但在发送前会被加密),scram-sha-256(一种更安全的密码认证方法),ldap(基于LDAP服务器的认证),cert(基于SSL证书的认证),等等。

2、注意事项

  • 修改 pg_hba.conf 文件后,需要重启 PostgreSQL 服务才能使更改生效。

  • 出于安全考虑,应谨慎配置 trust 方法,因为它允许无条件访问数据库,这可能会带来安全风险。

  • 在生产环境中,建议使用强密码和安全的认证方法(如 scram-sha-256 或 cert)。

  • 对于远程连接,特别是通过互联网的连接,应考虑使用SSL加密来增强安全性。

二、配置示例

1、创建用户dbuser,并授权此用户可读取DB1库内所有数据

-- 创建用户,并设置密码
CREATE USER dbuser WITH 'P@ssw0rd';-- 切换到目标库DB1
\c DB1-- 使用 GRANT 语句来授予 dbuser用户可以查DB1库内的所有数据
GRANT SELECT ON ALL TABLES IN SCHEMA "public" to lifelinedb;

2、pg_hba.conf限制数据库访问

修改pg_hba.conf文件,指定dbuser只能连接访问DB1库

# vi /var/lib/postgresql/data/pg_hba.conf
# TYPE  DATABASE        USER            ADDRESS        METHOD
local   DB1             dbuser                          md5    # 本地访问
host    DB1             dbuser           all            md5    # 远程访问

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

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

相关文章

Tool之Excalidraw:Excalidraw(开源的虚拟手绘风格白板)的简介、安装和使用方法、艾米莉应用之详细攻略

Tool之Excalidraw:Excalidraw(开源的虚拟手绘风格白板)的简介、安装和使用方法、艾米莉应用之详细攻略 目录 Excalidraw 简介 1、Excalidraw 的主要特点: Excalidraw 安装和使用方法 1、Excalidraw的安装 T1、使用 npm 安装: T2、使用 …

【蓝桥杯选拔赛真题96】Scratch风车旋转 第十五届蓝桥杯scratch图形化编程 少儿编程创意编程选拔赛真题解析

目录 scratch风车旋转 一、题目要求 编程实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、解题思路 1、思路分析 2、详细过程 四、程序编写 五、考点分析 六、推荐资料 1、入门基础 2、蓝桥杯比赛 3、考级资料 4、视频课程 5、python资料 scratc…

奇怪问题| Chrome 访问csdn 创作中心的时候报错: 服务超时,请稍后重试

Chrome 访问csdn 创作中心的时候报错: 服务超时,请稍后重试用无痕浏览器可以正常访问 关闭代理无效清缓存和Cookies无效。考虑无痕浏览器模式下插件不生效,尝试把chrome 插件也禁用,发现有效,是该扩展程序的缘故

B2HGraphicBufferProducer和H2BGraphicBufferProducer

在 Android 的图形系统中,B2HGraphicBufferProducer 和 BnGraphicBufferProducer 是基于 Binder 机制的两个重要组件,它们负责图形缓冲区的生产接口。二者关系可以理解为 桥接和实现分离,以下是详细说明: 1. B2HGraphicBufferProd…

sentinel学习笔记7-熔断降级

本文属于sentinel学习笔记系列。网上看到吴就业老师的专栏,写的好值得推荐,我整理的有所删减,推荐看原文。 https://blog.csdn.net/baidu_28523317/category_10400605.html 限流需要我们根据不同的硬件条件做好压测,不好准确评估…

记录--uniapp 安卓端实现录音功能,保存为amr/mp3文件

🧑‍💻 写在开头 点赞 收藏 学会🤣🤣🤣 功能实现需要用到MediaRecorder、navigator.mediaDevices.getUserMedia、Blob等API,uniapp App端不支持,需要借助renderjs来实现 实现逻辑 通过naviga…

步进电机位置速度双环控制实现

步进电机位置速度双环控制实现 野火stm32电机教学 提高部分-第11讲 步进电机位置速度双环控制实现(1)_哔哩哔哩_bilibili PID模型 位置环作为外环,速度环作为内环。设定目标位置和实际转轴位置的位置偏差,经过位置PID获得位置期望,然后讲位置期望(位置变化反映了转轴的速…

myexcel的使用

参考: (1)api文档:https://www.bookstack.cn/read/MyExcel-2.x/624d8ce73162300b.md (2)源代码: https://github.com/liaochong/myexcel/issues 我: (1)m…

MySQL 8.0:explain analyze 分析 SQL 执行过程

介绍 MySQL 8.0.16 引入一个实验特性:explain formattree ,树状的输出执行过程,以及预估成本和预估返 回行数。在 MySQL 8.0.18 又引入了 EXPLAIN ANALYZE,在 formattree 基础上,使用时,会执行 SQL &#…

事务、管道

目录 事务 相关命令 悲观锁 乐观锁 管道 实例 Pipeline与原生批量命令对比 Pipeline与事物对比 使用Pipeline注意事项 事务 相关命令 命令描述discard取消事务,放弃执行事务块内的所有命令exec执行所有事务块内的事务(所有命令依次执行&#x…

list的常用操作

list的介绍 list是序列容器,它允许在常数范围O(1)进行插入和删除在这段序列的任意位置,并且可以双向遍历 它是弥补vector容器的缺点,与vector有互补的韵味, 这里我们可以将其进行与vector进行对比 vect…

机器人角度参考方式

机器人的角度可以根据需求和系统设计来决定。通常情况下,机器人角度(如航向角或偏航角)有两种常见的参考方式: 参考开机时的 0:这是最常见的方式,机器人在开机时会将当前的方向作为 0(即参考方向…

Go语言封装Cron定时任务

Go语言封装Cron定时任务 介绍目标项目背景代码分析代码实现主要功能 Cron表达式解析例子 使用示例总结 介绍 在现代应用中,定时任务是非常常见的需求,无论是用于定时清理数据、定时发送邮件,还是定时执行系统维护任务。Go语言作为一门现代编…

3.4 stm32系列:定时器(PWM、定时中断)

一、定时器概述 1.1 软件定时原理 使用纯软件(CPU死等)的方式实现定时(延时)功能; 不精准的延迟: /* 微秒级延迟函数* 不精准* stm32存在压出栈过程需要消耗时间* 存在流水线,执行时间不确定…

28、论文阅读:基于像素分布重映射和多先验Retinex变分模型的水下图像增强

A Pixel Distribution Remapping and Multi-Prior Retinex Variational Model for Underwater Image Enhancement 摘要介绍相关工作基于模型的水下图像增强方法:无模型水下图像增强方法:基于深度学习的水下图像增强方法: 论文方法概述像素分布…

【路径规划】原理及实现

路径规划(Path Planning)是指在给定地图、起始点和目标点的情况下,确定应该采取的最佳路径。常见的路径规划算法包括A* 算法、Dijkstra 算法、RRT(Rapidly-exploring Random Tree)等。 目录 一.A* 1.算法原理 2.实…

java web springboot

0. 引言 SpringBoot对Spring的改善和优化,它基于约定优于配置的思想,提供了大量的默认配置和实现 使用SpringBoot之后,程序员只需按照它规定的方式去进行程序代码的开发即可,而无需再去编写一堆复杂的配置 SpringBoot的主要功能…

transformer用作分类任务

系列博客目录 文章目录 系列博客目录1、在手写数字图像这个数据集上进行分类1. 数据准备2. 将图像转化为适合Transformer的输入3. 位置编码4. Transformer编码器5. 池化操作6. 分类头7. 训练8. 评估总结流程:相关模型: 1、在手写数字图像这个数据集上进行…

实验四 综合数据流处理-Storm (单机和集群配置部分)

1.前期准备 (1)把docker和docker-compose给下载好 参考:基于docker-compose来搭建zookeeper集群-CSDN博客(注意对于这篇文章下面配置zookeeper的内容,可以直接跳过,因为我们只需要看最上面下载docker-com…

前端开发 之 12个鼠标交互特效下【附完整源码】

前端开发 之 12个鼠标交互特效下【附完整源码】 文章目录 前端开发 之 12个鼠标交互特效下【附完整源码】七:粒子烟花绽放特效1.效果展示2.HTML完整代码 八:彩球释放特效1.效果展示2.HTML完整代码 九:雨滴掉落特效1.效果展示2.HTML完整代码 十…