在 Debian 12上安装 PostgreSQL
一、系统更新
sudo apt update
sudo apt install apt-transport-https lsb-release ca-certificates curl dirmngr gnupg
二、安装PostgreSQL
1.将官方 PostgreSQL 存储库添加到Debian系统中并导入签名密钥
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
2.安装PostgreSQL
sudo apt update
sudo apt install postgresql
3.配置PostgreSQL
启动和停止 PostgreSQL 服务:
sudo systemctl start postgresql sudo systemctl enable postgresql
创建 PostgreSQL 用户和数据库:
访问PostgreSQL shell:sudo -u postgres psql
创建用户:
CREATE USER username WITH PASSWORD 'password';
创建数据库:
CREATE DATABASE database_name;
配置 PostgreSQL 安全性
通过配置认证方式和访问控制,可以保证只有授权的用户才能访问。 您需要修改的配置文件称为“pg_hba.conf”。sudo nano /etc/postgresql/<version>/main/pg_hba.conf
在 pg_hba.conf 文件中,您可以指定不同类型连接的身份验证方法并定义访问控制规则。
# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 127.0.0.1/32 scram-sha-256 # IPv6 local connections: host all all ::1/128 scram-sha-256 # Allow replication connections from localhost, by a user with the # replication privilege. local replication all peer host replication all 127.0.0.1/32 scram-sha-256 host replication all ::1/128 scram-sha-256 local dbname nginx scram-sha-256
PostgreSQL 15对用户权限这块进行了增强。默认情况,不再设置public schema的CREATE权限。
GRANT CREATE ON SCHEMA public TO username;