如何在 Debian 10 中安装 PostgreSQL 数据库
PostgreSQL(有时称为Postgres)是最先进的开源通用对象关系数据库系统,具有经过验证的架构,可在所有主流操作系统上运行。它是一种高性能、稳定、可扩展且可扩展的数据库系统,提供出色的数据完整性并支持强大的附加组件。
重要的是,PostgreSQL允许您定义自己的数据类型,添加自定义函数,甚至使用不同的编程语言(如 C/C++、Java 等)编写代码,而无需重新编译数据库。
PostgreSQL被 Apple、富士通、红帽、思科、瞻博网络等知名科技公司所使用。
在本文中,我们将向您展示如何在Debian 10中安装、保护和配置PostgreSQL数据库服务器。
要求:
在 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数据库服务器。您有任何问题或想法要分享吗?使用下面的评论表与我们联系。