创建用户
CREATE USER username WITH PASSWORD 'password';
删除用户
DROP USER username;
修改密码
ALTER USER username WITH PASSWORD 'newpass';
创建只读用户(全库权限)
-
创建角色
CREATE ROLE 用户名 WITH LOGIN PASSWORD '密码'; -
逐库授权(对每个数据库执行)
\c 目标数据库名 GRANT USAGE ON SCHEMA public TO 用户名; GRANT SELECT ON ALL TABLES IN SCHEMA public TO 用户名; -
设置未来表默认权限
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO 用户名;
创建全权限用户(指定数据库)
-
创建角色并授权连接
CREATE ROLE 用户名 WITH LOGIN PASSWORD '密码'; GRANT CONNECT ON DATABASE 库名 TO 用户名; -
切换到目标数据库授权
\c 库名 GRANT USAGE ON SCHEMA public TO 用户名; GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO 用户名; -
设置未来表默认权限
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL PRIVILEGES ON TABLES TO 用户名;
权限控制进阶
-
回收权限
REVOKE INSERT ON 表名 FROM 用户名; -
授予超级用户权限
ALTER USER username WITH SUPERUSER;