在 PostgreSQL 中创建用户和数据库是很常见的操作,尤其是在 PostgreSQL 15+ 版本中,需要注意一些权限问题。
创建用户和数据库
1 2 3 4 5 6 7 8 9 10 11
| CREATE ROLE myuser WITH LOGIN PASSWORD 'yourpassword' VALID UNTIL 'infinity';
GRANT myuser TO postgres;
CREATE DATABASE mydb WITH ENCODING='UTF8' OWNER=myuser CONNECTION LIMIT=-1;
REVOKE myuser FROM postgres;
|
修改和删除
1 2 3 4 5
| ALTER DATABASE mydb OWNER TO postgres;
DROP DATABASE mydb;
|
参数说明
| 参数 |
说明 |
LOGIN |
允许该角色登录 |
PASSWORD |
设置密码 |
VALID UNTIL 'infinity' |
密码永不过期 |
ENCODING='UTF8' |
数据库编码为 UTF-8 |
OWNER |
指定数据库所有者 |
CONNECTION LIMIT=-1 |
不限制连接数 |
注意事项
- PostgreSQL 15+ 创建数据库时需要先
GRANT 角色给当前用户,完成后可撤销
- 密码建议使用强密码,可设置具体过期时间替代
infinity
- 只有数据库所有者或超级用户才能删除数据库
参考