Debian中PostgreSQL权限管理主要通过角色、权限命令及配置文件实现,核心操作如下:
安装PostgreSQL
sudo apt update && sudo apt install postgresql postgresql-contrib
创建角色/用户
# 创建可登录角色(用户)
CREATE ROLE username WITH LOGIN PASSWORD 'password';
# 或直接创建用户(自动关联角色)
CREATE USER username WITH PASSWORD 'password';
分配权限
GRANT ALL PRIVILEGES ON DATABASE dbname TO username; # 授予所有权限
REVOKE ALL PRIVILEGES ON DATABASE dbname FROM username; # 撤销权限
GRANT SELECT, INSERT ON TABLE tablename TO username; # 授予表权限
GRANT SELECT(column1, column2) ON TABLE tablename TO username; # 授予列权限
GRANT USAGE ON SCHEMA public TO username; # 授予模式使用权限
默认权限设置
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO username; # 新建表默认授SELECT权
连接控制
编辑 /etc/postgresql/version/main/pg_hba.conf
,添加规则限制IP访问,例如:
host all all 192.168.1.0/24 md5 # 允许指定IP段通过MD5密码认证连接
修改后需重启服务生效:
sudo systemctl reload postgresql
权限查看与管理
\du # psql命令行查看角色列表及权限
SELECT * FROM pg_user WHERE usename='username'; # 查看用户详细信息
DROP ROLE username;
注意:操作需在postgres
用户下执行,或通过sudo -u postgres
切换用户。部分命令需根据实际需求调整权限范围(如ALL PRIVILEGES
可替换为具体权限组合)。