createuser 是一个用于创建数据库角色的核心实用程序,它本质上是CREATE ROLE命令的一个包装器。
createuser 在 PostgreSQL 7.0 中添加。
用法
与大多数核心实用程序不同,createuser 不通过 -d/--dbname 选项接受连接信息字符串;-d 选项实际上是 -d/--createdb (“角色可以创建新数据库”),并且没有 --dbname 长选项,因此连接参数必须通过 -h/--host、-p/--port 等单独提供。
请注意,与 CREATE ROLE(但与 CREATE USER 类似)不同,使用 createuser 创建的任何角色默认都将获得登录权限。
成功创建用户时,createuser 不会发出任何输出。
源代码
createuser 的源代码位于 src/bin/scripts/createuser.c。
变更历史
- PostgreSQL 16
- PostgreSQL 13
- 已删除已弃用的选项
--adduser和--no-adduser(提交 4fa5edcd)
- 已删除已弃用的选项
- PostgreSQL 10
- 已删除选项
--unencrypted(提交 eb61136d)
- 已删除选项
- PostgreSQL 9.4
- 添加了选项
-g/--role(提交 6bea96dd)
- 添加了选项
- PostgreSQL 9.2
- PostgreSQL 8.4
- 添加了
-w/--no-password选项(提交 9de59fd1)
- 添加了
- PostgreSQL 8.3
- 已删除
--quiet选项(提交 9539e64b)
- 已删除
- PostgreSQL 8.1
- PostgreSQL 7.4
- 从 shell 脚本转换为 C 程序(提交 9e0ab712)
- PostgreSQL 7.3
- 添加了对包含空格的标识符的支持(提交 5804a7ce)
- PostgreSQL 7.2
- 添加了
--encrypted和--unencrypted选项(提交 4699d81d)
- 添加了
- PostgreSQL 7.0
- 添加(提交 240e4c98)
示例
postgres=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
admin | Cannot login | {}
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
postgres=# \q
postgres$ createuser -h localhost --role=admin newuser
postgres$ psql
psql (14.3)
Type "help" for help.
postgres=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
admin | Cannot login | {}
newuser | | {admin}
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
参考资料
- PostgreSQL 文档: createuser
