如何在 Debian 10 中安装 PostgreSQL 数据库
PostgreSQL(有时称为Postgres)是最先进的开源通用和对象关系数据库系统,具有经过验证的架构,可在所有主要操作系统上运行。它是一个高性能、稳定、可伸缩和可扩展的数据库系统,提供令人惊叹的数据完整性并支持强大的附加组件。
重要的是,PostgreSQL 允许您定义自己的数据类型、添加自定义函数,甚至可以使用不同的编程语言(例如 C/C++、Java 等)编写代码,而无需重新编译数据库。
PostgreSQL被Apple、Fujitsu、Red Hat、Cisco、Juniper Network等知名科技公司所使用。
在本文中,我们将向您展示如何在 Debian 10 中安装、保护和配置 PostgreSQL 数据库服务器。
要求:
- 安装 Debian 10 (Buster) 最小服务器
在 Debian 10 上安装 PostgreSQL 服务器
要安装PostgreSQL数据库服务器,请使用默认的APT包管理器,它将安装PostgreSQL 11服务器和客户端。
apt install postgresql-11 postgresql-client-11
在 Debian 上,与任何其他守护进程一样,Postgres 数据库在软件包安装完成后立即初始化,如以下屏幕截图所示。
要检查 Postgres 数据库是否真正初始化,您可以使用 pg_isready 实用程序来检查 PostgreSQL 服务器的连接状态,如下所示。
pg_isready
此外,在systemd下,Postgres服务也会自动启动并在系统启动时启动。要确保服务正常启动并运行,请运行以下命令。
systemctl status postgresql
以下是其他有用的 systemctl 命令,用于在 systemd 下管理 Postgres 服务。
systemctl start postgresql
systemctl restart postgresql
systemctl stop postgresql
systemctl reload postgresql #this reloads the service configuration
保护和配置 PostgreSQL 数据库
默认情况下,Postgres 使用角色的概念来管理数据库访问权限,数据库角色在概念上与操作系统用户完全分开。角色可以是用户,也可以是组,具有登录权限的角色称为用户。
刚初始化的系统总是包含一个名为 postgres 的预定义角色,它与名为 postgres 的操作系统用户帐户同名,用于访问 psql (Postgres shell) 和其他数据库程序。
Postgres 系统用户帐户不受密码保护,为了保护它,您可以使用 passwd 实用程序 创建密码。
passwd postgres
此外,默认情况下,Postgres 角色(或管理数据库用户,如果您愿意)不受保护。您还需要使用密码来保护它。现在切换到 postgres 系统用户帐户和 postgres 角色(请记住设置一个强而安全的密码),如图所示。
su - postgres
psql -c "ALTER USER postgres WITH PASSWORD 'securepass_here';"
然后退出 postgres 帐户以继续阅读指南。
配置客户端身份验证
主要的Postgres配置文件位于/etc/postgresql/11/main/postgresql.conf。除了此文件之外,Postgres 还使用另外两个手动编辑的配置文件来控制客户端身份验证。
客户端身份验证由 /etc/postgresql/11/main/pg_hba.conf 配置文件控制。 Postgres 提供了许多不同的客户端身份验证方法,包括基于密码的身份验证。客户端连接根据客户端主机地址、数据库和用户进行身份验证。
如果您选择使用基于密码的身份验证,则可以实现以下方法之一:md5 或密码,除了密码通过连接传输的方式不同之外,其操作方式类似,分别是MD5哈希和明文。
使用md5密码认证可以避免密码被黑客嗅探,并避免将密码以明文形式存储在服务器上。只有当连接受到 SSL 加密保护时,才能安全地使用密码方法。
在本指南中,我们将展示如何为客户端身份验证配置md5密码身份验证。
vim /etc/postgresql/11/main/pg_hba.conf
查找以下行并将身份验证方法更改为 md5
,如屏幕截图所示。
local all all md5
保存文件中的更改并退出。然后通过重新启动 Postgres 服务来应用最近的更改,如下所示。
systemctl restart postgresql
在 PostgreSQL 中创建新的数据库和数据库角色/用户
在最后一节中,我们将展示如何创建新的数据库用户和数据库角色来管理它。首先,切换到 postgres 帐户并打开 Postgres shell,如下所示。
su - postgres
psql
要创建名为“test_db”的数据库,请运行以下 SQL 命令。
postgres=# CREATE DATABASE test_db;
然后创建一个数据库用户(具有登录权限的角色),该用户将管理新数据库,如下所示。
postgres=#CREATE USER test_user PASSWORD ‘securep@ss_here’; #assumes login function by default
要以用户 test_user 身份连接到 test_db,请运行以下命令。
psql -d test_db -U test_user
有关更多信息,请参阅 PostgreSQL 11 文档。
结论
暂时就这样吧!在本指南中,我们展示了如何在 Debian 10 中安装、保护和配置 PostgreSQL 数据库服务器。您有任何问题或想法要分享吗?使用下面的评论表联系我们。