createuser
createuser
— 创建一个新的 
Postgres 用户
语法
createuser [ options ] [ username ]
输入
- 
-h, --host host
 
- 
声明 postmaster 正在运行的机器的主机名.
 
- 
-p, --port port
 
- 
声明 postmaster 正在侦听的互联网
TCP/IP 端口号或本地Unix域套接字的文件扩展(描述符).
 
- 
-e, --echo
 
- 
回现 createdb 生成的查询并发送给后端。
 
- 
-q, --quiet
 
- 
不显示响应。
 
- 
-d, --createdb
 
- 
允许该新建用户创建数据库。
 
- 
-D, --no-createdb
 
- 
禁止该新建用户创建数据库。
 
- 
-a, --adduser
 
- 
允许该新建用户创建其他用户。
 
- 
-A, --no-adduser
 
 
- 
禁止该新建用户创建其他用户。
 
- 
-P, --pwprompt
 
- 
给出此开关,createuser 将显示一个提示符要求输入新用户的口令。如果你不打算使用口令认证,这些是不必要的。
 
- 
-i, --sysid uid
 
- 
允许你给新用户使用非缺省用户标识。这个也不是必须的,但是有些人喜欢这样。
 
- 
username
 
- 
声明要创建的 PostgreSQL 用户名称。该名称必须在所有 PostgreSQL
用户中唯一。
 
 
 
如果没有在命令行上声明名称和其他的一些信息,脚本会提示你输入一个。
选项 -h,-p,和 -e,逐字传递给 psql。psql
选项 -U 和 -W 也可以使用,但是这些开关的使用在这个环境中可能有些混乱。
 
输出
- 
CREATE USER
 
- 
一切正常。
 
- 
createuser: creation of user "username" failed
 
 
出了差错,用户没有创建。
如果出现错误,将会显示后端错误信息。参阅 
CREATE
USER 和  
psql 获取可能信息描述。
 
 
描述
createuser 创建一个新的 
PostgreSQL
用户。只有在 
pg_shadow 表里面拥有 
usesuper 集的用户可以创建新的 
Postgres
用户。
createuser 是一个 shell 脚本,通过
PostgreSQL
交互终端 psql 封装了SQL
命令  CREATE USER 。因此,用那种方法创建新用户都没什么特别的。这意味着psql
必须能被脚本找到并且有一个数据库服务器在目标主机上运行。同样,任何psql
和 libpq 前端库可获得的缺省设置和环境变量都将生效。
 
用法
在缺省数据库服务器上创建一个用户 
joe:
$ createuser joe
Is the new user allowed to create databases? (y/n) n
Shall the new user be allowed to create more new users? (y/n) n
CREATE USER
用在主机 eden 上的 postmaster 创建用户 
joe,端口是 5000,避免提示并且显示执行的查询:
$ createuser -p 5000 -h eden -D -A -e joe
CREATE USER "joe" NOCREATEDB NOCREATEUSER
CREATE USER