6.6. 通过限制对经过身份验证的用户的访问来保护 PostgreSQL
PostgreSQL 是一个对象相关数据库管理系统(DBMS)。在 Red Hat Enterprise Linux 中,PostgreSQL 由 postgresql-server
软件包提供。
您可以通过配置客户端身份验证来降低攻击的风险。pg_hba.conf
配置文件存储在数据库集群的数据目录中,控制客户端身份验证。按照以下步骤为基于主机的验证配置 PostgreSQL。
流程
安装 PostgreSQL:
# yum install postgresql-server
使用以下选项之一初始化数据库存储区域:
使用
initdb
工具:$ initdb -D /home/postgresql/db1/
带有
-D
选项的initdb
命令会创建您指定的目录(如果尚未存在),例如/home/postgresql/db1/
。然后,此目录包含数据库中存储的所有数据以及客户端身份验证配置文件。使用
postgresql-setup
脚本:$ postgresql-setup --initdb
默认情况下,该脚本使用
/var/lib/pgsql/data/
目录。此脚本可以帮助具有基本数据库集群管理的系统管理员。
要允许任何经过身份验证的用户使用其用户名访问任何数据库,请在
pg_hba.conf
文件中修改以下行:local all all trust
当使用创建数据库用户和没有本地用户的层次应用程序时,这可能会造成问题。如果您不想显式控制系统中所有用户名,请从
pg_hba.conf
文件中删除local
行条目。重启数据库以应用更改:
# systemctl restart postgresql
上一命令更新数据库,同时还验证配置文件的语法。