createuser

Name

createuser — 创建一个新的 Postgres 用户

createuser [options...] [username]

输入

-h, --host host

声明运行 postmaster 的机器的主机名. 如果主机名以斜扛开头,则它被用做到 Unix 域套接字的路径.

-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

声明要创建的 Postgres 用户名称。 该名称必须在所有 Postgres 用户中唯一。

如果没有在命令行上声明名称和其他的一些信息,脚本会提示你输入一个。

选项-h-p,和 -e, 逐字传递给 psql。 也可以使用psql 选项 -U-W 但是这些开关的使用在这个环境中可能有些混乱。

输出

CREATE USER

一切正常。

createuser: creation of user "username" failed

出了差错,用户没有创建。

如果出现错误,将会显示后端错误信息。参阅 CREATE USERpsql 获取可能信息描述。

描述

createuser创建一个新的 Postgres 用户。只有在 pg_shadow 表里面拥有 usesuper 集的用户可以创建新的 Postgres 用户。

createuser 是一个 shell 脚本,通过 Postgres 交互终端 psql 封装了 SQL 命令 CREATE USER 。 因此,用那种方法创建新用户都没什么特别的。 这意味着 psql 必须能被脚本找到并且有一个数据库服务器在目标主机上运行。同样,任何 psqllibpq 前端库可获得的缺省设置和环境变量都将生效。

用法

在缺省数据库服务器上创建一个用户 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