Menu Close

6.6. 通过限制对经过身份验证的本地用户的访问来保护 PostgreSQL

PostgreSQL 是一个对象关联的数据库管理系统(DBMS)。在 Red Hat Enterprise Linux 中,PostgreSQL 由 postgresql-server 软件包提供。

您可以通过配置客户端身份验证来降低攻击风险。pg_hba.conf 配置文件存储在数据库集群的数据目录中用来控制客户端身份验证。按照以下步骤为基于主机的身份验证配置 PostgreSQL。

流程

  1. 安装 PostgreSQL:

    # yum install postgresql-server
  2. 使用以下选项之一初始化数据库存储区域:

    1. 使用 initdb 工具:

      $ initdb -D /home/postgresql/db1/

      带有 -D 选项的 initdb 命令创建您指定的目录(如果尚未存在),例如 /home/postgresql/db1/。此目录随后包含数据库中存储的所有数据,以及客户端身份验证配置文件。

    2. 使用 postgresql-setup 脚本:

      $ postgresql-setup --initdb

      默认情况下,该脚本使用 /var/lib/pgsql/data/ 目录。此脚本可帮助系统管理员具有基本数据库集群管理。

  3. 要允许任何通过身份验证的本地用户使用的用户名访问任何数据库,请在 pg_hba.conf 文件中修改以下行:

    local   all             all                                     trust

    当使用创建数据库用户的层次应用程序且没有本地用户时,这可能会出现问题。如果您不想显式控制系统上的所有用户名,请从 pg_hba.conf 文件中删除 本地 行条目。

  4. 重启数据库以应用更改:

    # systemctl restart postgresql

    上一命令更新数据库,并且验证配置文件的语法。