table of contents
CREATEUSER(1) | PostgreSQL Client Applications | CREATEUSER(1) |
NAME¶
createuser - 定义一个新的 PostgreSQL 用户帐户
SYNOPSIS¶
createuser [ option... ] [ username ]
DESCRIPTION 描述¶
createuser 创建一个新的 PostgreSQL 用户。只有超级用户(在 pg_shadow 表中设置了 usesuper 的用户)可以创建新的 PostgreSQL 用户。 因此, createuser 必须由某位可以以 PostgreSQL 超级用户连接的用户执行。
作为超级用户同时也意味着绕开数据库内访问检查的能力,
因此我们应该少赋予超级用户权限。
createuser 是 SQL 命令 CREATE USER [create_user(7)] 的封装。 因此,用那种方法创建新用户都没什么特别的。
OPTIONS 选项¶
createuser 接受下列命令行参数:
- username
- 声明要创建的 PostgreSQL 用户名称。 该名称必须在所有 PostgreSQL 用户中唯一。
- -a
- --adduser
- 允许该新建用户创建其他用户。(注意: 实际上这样做相当于把这个新用户变成了 superuser,只不过这个选项命名得比较烂。)
- -A
- --no-adduser
-
不允许该新建用户创建其他用户。 (也就是说,该用户是一个普通用户,不是超级用户)。 - -d
- --createdb
-
允许该新建用户创建数据库。 - -D
- --no-createdb
-
禁止该新建用户创建数据库。 - -e
- --echo
-
回显 createuser 生成的命令并发送给服务器。 - -E
- --encrypted
-
对保存在数据库里的用户口令加密。如果没有声明, 则使用缺省值。 - -i number
- --sysid number
-
允许你给新用户使用非缺省用户标识。这个也不是必须的,但是有些人喜欢这样。 - -N
- --unencrypted
-
不对保存在数据库里的用户口令加密。如果没有声明, 则使用缺省值, - -P
- --pwprompt
-
如果给出,createuser 将发出一个提示符要求输入新用户的口令。 如果你不打算用口令认证,那么这是不必要的。 - -q
- --quiet
-
不显示响应。
如果没有在命令行上声明名称和其他的一些缺少的信息,脚本会提示你输入。
createuser 还接受下列命令行参数用作连接参数:
- -h host
- --host host
-
声明运行服务器的机器的主机名。 如果数值以斜扛开头,则它被用做到 Unix 域套接字的路径。 - -p port
- --port port
-
声明服务器 正在侦听的互联网 TCP 端口号或本地Unix域套接字的文件扩展(描述符)。 - -U username
- --username username
-
连接的用户名(不是要创建的用户名)。 - -W
- --password
-
强制口令提示(与服务器连接的口令,不是新用户的口令。)
ENVIRONMENT 环境¶
DIAGNOSTICS 诊断¶
如果出现错误,将会显示后端错误信息。参阅 CREATE USER [create_user(7)] 和 psql(1) 获取可能信息描述。数据库服务器必须在目标主机上运行。 同样,任何 libpq 前端库使用的缺省连接设置和环境变量都将适用。
EXAMPLES 例子¶
在缺省数据库服务器上创建一个用户 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上的服务器创建用户
joe,端口是
5000,避免提示并且显示执行的命令:
$ createuser -p 5000 -h eden -D -A -e joe CREATE USER "joe" NOCREATEDB NOCREATEUSER CREATE USER
SEE ALSO 参见¶
dropuser(1), CREATE USER [create_user(7)]
译者¶
Postgresql 中文网站 何伟平 <laser@pgsqldb.org>
2003-11-02 | Application |