createuser
createuser — 创建一个新的 Postgres 用户
大纲
createuser [username] createuser [ -hhost] [ -pport] [ -iuserid] [ -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:usernamecannot create users.你没有创建新用户的权限;联系你的 Postgres站点管理员。
createuser: user "username" already exists要添加的用户已经在
pg_shadow类中有一项。database access failedpsql或后端服务器中发生了内部错误。请确保你的站点管理员已正确安装 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超级用户、新用户是否可以创建新数据库、以及新用户是否被允许创建其他新用户。