↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1 / 7.0 / 6.5 / 6.4
历史版本PostgreSQL 6.4 已于 2003 年 10 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本。

createuser

createuser — 创建一个新的 Postgres 用户

大纲

createuser [ username ]
createuser [ -h host ] [ -p port ]
    [ -i userid ] [ -d | -d ] [ -u | -u ]
    [ username ]
  

输入

-h host

指定运行 postmaster 的机器的主机名。默认使用本地 unix 域套接字而不是 IP 连接..

-p port

指定 postmaster 正在监听连接的 Internet TCP/IP 端口或本地 unix 域套接字文件扩展名。端口号默认为 5432,或 PGPORT 环境变量的值(如果已设置)。

-d

允许该用户创建数据库。

-D

禁止该用户创建数据库。

-i userid

指定要与此用户关联的数字标识符。这个标识符必须在所有 Postgres用户之间唯一,并且不需要与操作系统的 uid 一致。如果命令行上没有指定标识符,系统会提示你输入,并且它会建议一个与 uid 匹配的标识符。

-u

允许该用户创建其他用户。

-U

禁止该用户创建其他用户。

username

指定要创建的 Postgres 用户的名称。这个名称必须在所有 Postgres用户之间唯一。如果命令行上没有指定名称,系统会提示你输入。

输出

createuser将在 pg_user或pg_shadow系统表中添加一项。

Connection to database 'template1' failed. connectDB() failed: Is the postmaster running and accepting connections at 'UNIX SOCKET' on port 'port'? createuser: database access failed.

createuser无法在指定的主机和端口上连接到 postmaster 进程。如果你看到这条消息,请确保 postmaster 在正确的主机上运行,并且你指定了正确的端口。如果你的站点使用认证系统,请确保你已获得所需的认证凭据。

Connection to database 'template1' failed. FATAL 1: SetUserId: user 'username' is not in 'pg_shadow' createuser: database access failed.

你在关系 pg_shadow中没有有效的项,将不被允许访问 Postgres。联系你的 Postgres管理员。

createuser: username cannot create users.

你没有创建新用户的权限;联系你的 Postgres站点管理员。

createuser: user "username" already exists

要添加的用户已经在 pg_shadow类中有一项。

database access failed

psql或后端服务器中发生了内部错误。请确保你的站点管理员已正确安装 Postgres并用 initdb初始化了站点。

注意

createuser在内部连接到 template1数据库并从 psql运行 CREATE USER。

描述

createuser创建一个新的 Postgres用户。只有 pg_shadow类中usesuper被设置的用户才能创建新的 Postgres用户。就发行版本而言,用户 postgres可以创建用户。

createuser是一个调用 psql的 shell 脚本。因此,在执行 createuser之前,数据库服务器主机上必须有一个 postmaster 进程在运行。 PGOPTION 和 PGREALM 环境变量将被传递给 psql,并按psql中所述处理。 一旦被调用,createuser 会提出一系列问题来获取命令行上未指定的参数。必须指定新用户的数据库登录名和数字用户标识符。

注意

Postgres用户标识符不需要与该用户的 Unix UID 相同。不过,通常它们会被指定为相同。

出于安全目的,你还必须描述新用户的权限。具体来说,系统会询问新用户是否应能充当 Postgres超级用户、新用户是否可以创建新数据库、以及新用户是否被允许创建其他新用户。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。