Debian 12 环境下 PostgreSQL 15 部署与安全配置

  1. 系统安装

Debian 12 官方仓库已包含 PostgreSQL 15。

复制代码
sudo apt update
sudo apt install postgresql postgresql-contrib -y
  1. 防火墙配置 (UFW)

确保系统防火墙放行数据库默认端口 5432。

复制代码
sudo ufw allow 5432/tcp
sudo ufw reload
  1. 数据库权限管理

直接在终端调用 psql 管理器创建环境:

复制代码
# 以 postgres 管理员身份进入
sudo -u postgres psql

# --- SQL 执行区域 ---
# 1. 创建用户并设密码
CREATE USER myuser WITH PASSWORD 'your_password';

# 2. 创建数据库并指定归属
CREATE DATABASE mydatabase OWNER myuser;

# 3. 授予所有权限
GRANT ALL PRIVILEGES ON DATABASE mydatabase TO myuser;

# 退出
\q
  1. 开启外部连接 (核心配置)

默认情况下,PostgreSQL 只允许本机 127.0.0.1 访问。若要远程连接,需修改两个配置文件。

A. 修改监听地址

使用 GNU Nano 编辑器 修改主配置:

复制代码
sudo nano /etc/postgresql/15/main/postgresql.conf

找到以下行,取消注释并将 localhost 改为 *:

复制代码
listen_addresses = '*'

B. 修改访问策略

修改基于主机的身份验证文件:

复制代码
sudo nano /etc/postgresql/15/main/pg_hba.conf

在文件末尾添加以下行(允许所有 IP 使用 MD5 密码认证):

复制代码
host    all             all             0.0.0.0/0               md5

C. 重启服务

复制代码
sudo systemctl restart postgresql

建议步骤: 你现在可以使用 Navicat 或 DBeaver 尝试连接。如果连接失败,请检查是否漏掉了 5432 端口的放行。

相关推荐
zhangjw343 小时前
1-9 SELECT 查询基础:where、group by、having、order by、limit offset
数据库·postgresql·pg数据库
FungLeo1 天前
成为全栈·基础补充·数据库迁移与事务:数据结构怎样安全演进
mysql·postgresql·sqlite·数据一致性·数据库事务·数据库迁移·成为全栈
隔窗听雨眠3 天前
云数仓向PostgreSQL生态延伸的技术动因与工程代价
postgresql·数据库架构·云数仓
Peter-OK4 天前
PostgreSQL学习笔记(入门-进阶-精通说明)
笔记·学习·postgresql
FungLeo6 天前
成为全栈·基础补充·数据库索引:为什么加了索引还是慢
mysql·postgresql·sqlite·sql优化·数据库索引·成为全栈
ss2737 天前
为什么PostgreSQL适合AI场景?
数据库·人工智能·postgresql
考虑考虑8 天前
Posrgresql恢复.backup文件
数据库·后端·postgresql
Jesse_EC8 天前
换乘次数最少的路径 SQL 查询详解与实战经验——从 WITH RECURSIVE 到 pgRouting
数据库·postgresql
zhangjw348 天前
1-6 PostgreSQL 特色类型实战:数组、JSON & JSONB、枚举、范围类型
数据库·postgresql
IvorySQL9 天前
深入 PostgreSQL WAL:从崩溃恢复到逻辑复制
数据库·postgresql