pgsql-29 用户权限管理
目录
29 - 用户权限管理
1. 📖 概述
合理的权限管理是数据库安全的基础。
2. 👥 用户管理
2.1 创建用户
-- 普通用户
CREATE USER myapp WITH PASSWORD 'password';
-- 超级用户
CREATE USER admin WITH SUPERUSER PASSWORD 'admin_pass';
-- 带权限
CREATE USER developer WITH
PASSWORD 'dev_pass'
CREATEDB
VALID UNTIL '2025-12-31';
2.2 角色管理
-- 创建角色
CREATE ROLE readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly;
-- 将角色授予用户
GRANT readonly TO myuser;
3. 🔐 权限控制
3.1 数据库级权限
GRANT CONNECT ON DATABASE mydb TO myuser;
GRANT ALL PRIVILEGES ON DATABASE mydb TO admin;
REVOKE CONNECT ON DATABASE mydb FROM PUBLIC;
3.2 表级权限
GRANT SELECT, INSERT, UPDATE ON users TO myapp;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO admin;
REVOKE INSERT, UPDATE ON sensitive_table FROM myapp;
3.3 行级安全(RLS)
ALTER TABLE users ENABLE ROW LEVEL SECURITY;
CREATE POLICY user_policy ON users
FOR SELECT
USING (id = current_user_id());
4. 📚 下一步
学习数据迁移方案
xingliuhua