欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > PostgreSQL数据库访问限制详解

PostgreSQL数据库访问限制详解

2025/2/25 13:01:20 来源:https://blog.csdn.net/yeqinghanwu/article/details/144590415  浏览:    关键词: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    # 远程访问

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词