PostgreSQL数据库访问限制详解

news2024/12/25 23:35:20

        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.coloradmin.cn/o/2265522.html

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

相关文章

解析CGI(通用网关接口)技术

在互联网技术飞速发展的今天,CGI(Common Gateway Interface,通用网关接口)作为一种常见的服务器端脚本技术,依然在许多老旧网站和小型网站中广泛使用。尽管如今有许多更现代的技术替代了CGI,但它仍然是理解…

OPPO C++面试题及参考答案

五层协议每层包含的协议 在计算机网络的五层协议体系结构(自下而上为物理层、数据链路层、网络层、传输层和应用层)中,各层包含多种协议。 物理层主要负责在物理介质上传输原始的比特流,包括像 RJ - 45 接口标准等物理接口规范&am…

OpenAI 普及 ChatGPT,开通热线电话,近屿智能深耕AI培训

12月19日,在OpenAI直播活动的第10天,宣布允许用户通过电话或WhatsApp与ChatGPT进行交互。并在美国推出 ChatGPT 热线电话,用户拨打后可与 ChatGPT 进行语音对话。 这项服务的一个亮点在于它兼容各种类型的通信设备——不论是现代智能手机如iP…

四种电子杂志制作软件

​大家好,今天给大家种草四种超级实用的电子杂志制作软件。无论你是专业出版人士,还是业余爱好者,这四款软件都能帮助你轻松制作出精美的电子杂志。让我们一起来看看吧! 1.FLBOOK FLBOOK是一款在线仿真翻页制作H5电子画册&#x…

idea配置

2024.3 idea 重装idea启动失败样式常用插件 重装idea启动失败 1、检查环境变量,是否已设置 2、检查安装目录下,或对应的环境变量对应的路径文件下 是否有javaagent,可先移除或者检查配置是否正确 样式 1、展示上方工具栏 2、展示内存使用…

微信小程序的轮播图学习报告

微信小程序轮播图学习报告 好久都没分享新内容了,实在惭愧惭愧。今天给大家做一个小程序轮播图的学习报告。 先给大家看一下我的项目状态: 很空昂!像一个正在修行的老道,空的什么也没有。 但是我写了 4 个 view 容器,…

L24.【LeetCode笔记】 杨辉三角

目录 1.题目 2.分析 模拟二维数组的大致思想 杨辉三角的特点 二维数组的元素设置代码 两个参数returnSize和returnColumnSizes 理解"有效"的含义 完整代码 提交结果 1.题目 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉…

项目亮点案例

其实对我来说是日常操作,但是如果在面试的时候面试者能把日常的事情总结好发出来,其实足矣。 想让别人认同项目,选取的示例需要包含以下要素: 亮点项目四要素:明确的目标,问题点,解决方法和结果…

Vue.js组件(5):自定义组件

1 介绍 下面的所有组件全部基于VUE3 TS element plus编写,其中部分组件可能涉及到其他技术栈,会进行单独说明。 2 基础组件 2.1 表格操作组件TableToolButton 此组件用于对表格进行增加、编辑、删除、导出操作。 2.1.1 组件属性 addVisible&#x…

ctfhub技能树——disable_functions

LD_PRELOAD 来到首页发现有一句话直接就可以用蚁剑连接 根目录里有/flag但是不能看;命令也被ban了就需要绕过了 绕过工具在插件市场就可以下载 如果进不去的话 项目地址: #本地仓库;插件存放 antSword\antData\plugins 绕过选择 上传后我们点进去可以看到多了一个绕过的文件;…

【PCIe 总线及设备入门学习专栏 1.1 -- PCIe 基础知识 lane和link介绍】

文章目录 OverivewLane 和 LinkRC 和 RPPCIe controllerPCIE ControllerPHY模块 Inbound 和 OutboundPCIe transaction modelPIODMAP2P Overivew PCIe,即PCI-Express总线(Peripheral Component Interconnect Express),是一种高速…

golang LeetCode 热题 100(动态规划)-更新中

爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1:输入:n 2 输出:2 解释:有两种方法可以爬到楼顶。 1. 1 阶 1 阶 2. 2 阶 示例 2&…

分布式专题(10)之ShardingSphere分库分表实战指南

一、ShardingSphere产品介绍 Apache ShardingSphere 是一款分布式的数据库生态系统, 可以将任意数据库转换为分布式数据库,并通过数据分片、弹性伸缩、加密等能力对原有数据库进行增强。Apache ShardingSphere 设计哲学为 Database Plus,旨在…

Vue 3.5 编写 ref 时,自动插入.Value

如果是 Vue 3.2 ,那么可能用的是Volar

深度学习中的并行策略概述:2 Data Parallelism

深度学习中的并行策略概述:2 Data Parallelism 数据并行(Data Parallelism)的核心在于将模型的数据处理过程并行化。具体来说,面对大规模数据批次时,将其拆分为较小的子批次,并在多个计算设备上同时进行处…

OneCode:开启高效编程新时代——企业定制出码手册

一、概述 OneCode 的 DSM(领域特定建模)出码模块是一个强大的工具,它支持多种建模方式,并具有强大的模型转换与集成能力,能够提升开发效率和代码质量,同时方便团队协作与知识传承,还具备方便的仿…

《Web 应用项目开发:从构思到上线的全过程》

目录 一、引言 二、项目启动与需求分析 三、设计阶段 四、技术选型 五、开发阶段 六、测试阶段 七、部署与上线 八、维护与更新 九、总结 一、引言 在数字化浪潮席卷全球的当下,Web 应用如繁星般在互联网的苍穹中闪烁,它们形态各异&#xff0c…

中小学教室多媒体电脑安全登录解决方案

中小学教室多媒体电脑面临学生随意登录的问题,主要涉及到设备使用、网络安全、教学秩序等多个方面。以下是对这一问题的详细分析: 一、设备使用问题 1. 设备损坏风险 学生随意登录可能导致多媒体电脑设备过度使用,增加设备损坏的风险。不当…

Odoo 免费开源 ERP:通过 JavaScript 创建对话框窗口的技术实践分享

作者 | 老杨 出品 | 上海开源智造软件有限公司(OSCG) 概述 在本文中,我们将深入研讨如何于 Odoo 18 中构建 JavaScript(JS)对话框或弹出窗口。对话框乃是展现重要讯息、确认用户操作以及警示用户留意警告或错误的行…

OOP面向对象编程:类与类之间的关系

OOP面向对象编程:类与类之间的关系 三大关系:复合(适配器设计模式)、委托(桥接设计模式)、继承 8、1复合Composition has-a -> 适配器模式 一个类里面含有另一个类的对象 —> 复合关系 has-a 适配器设…