没有指定用户名的PostgreSQL`createuser`

时间:2018-09-28 02:37:20

标签: postgresql createuser

我跑了

$ createuser --pwprompt

并看到:

Enter password for new role: 

我希望系统提示您输入用户名,因此,此时我按了 CTRL + C

man页的提要说用户名是可选的:

createuser [connection-option...] [option...] [username]

给出的唯一其他信息是:

  

用户名

     

指定要创建的PostgreSQL用户的名称。此名称必须不同于此PostgreSQL安装中的所有现有角色。

createuser上什么用户都没有操作?

1 个答案:

答案 0 :(得分:1)

您没有阅读文档的这一部分(也花了我一段时间):

  

--interactive

     

如果在命令行上未指定用户名,则提示输入用户名,并提示输入-d / -D-r / -R,{ {1}} / -s是   在命令行上未指定。 (这是PostgreSQL 9.1之前的默认行为。)

您未指定-S,因此不会提示您。

因此,PostgreSQL选择默认用户:除非设置--interactive,否则它就是您的操作系统用户。

因此,假设您是操作系统用户PGUSER,则可以有效地执行以下操作:

postgres

这当然很愚蠢,会导致

createuser -U postgres postgres

如果您没有让步并中断执行。