CREATE ROLE
是用于创建数据库角色的DDL命令。
CREATE ROLE
添加于 PostgreSQL 8.1,取代了现有的 CREATE USER
和 CREATE GROUP
命令(这些命令作为 CREATE ROLE
的别名保留)。
更改历史记录
- PostgreSQL 10
- 选项
UNENCRYPTED PASSWORD
已移除 (提交 eb61136d)
- 选项
- PostgreSQL 9.6
- 选项
CREATEUSER
/NOCREATEUSER
已移除 (提交 d371bebd)
- 选项
- PostgreSQL 9.5
- 选项
BYPASSRLS
/NOBYPASSRLS
已添加 (提交 491c029d)
- 选项
- PostgreSQL 9.1
- 选项
REPLICATION
/NOREPLICATION
已添加 (提交 9b8aff8c)
- 选项
- PostgreSQL 8.1
- 已添加 (提交 7762619e)
示例
CREATE ROLE
的最小用法示例
postgres=# CREATE ROLE foo; CREATE ROLE
默认情况下,此角色无法登录
postgres=# \du foo List of roles Role name | Attributes | Member of -----------+--------------+----------- foo | Cannot login | {}
要创建登录角色,请执行例如:
postgres=# CREATE ROLE bar LOGIN; CREATE ROLE postgres=# \du bar List of roles Role name | Attributes | Member of -----------+------------+----------- bar | | {}
这等效于执行 CREATE USER bar
。
无法创建名称为 "none
" 的角色
postgres=# CREATE ROLE none; ERROR: role name "none" is reserved LINE 1: CREATE ROLE none;
参考文献
- PostgreSQL文档: CREATE ROLE