为PostgreSQL用户设置空白密码

时间:2011-03-24 15:45:00

标签: postgresql createuser

我使用postgresql命令'createuser myusername'。它始终提示我输入密码。如果我将密码留空,则会出现错误,指出没有密码。

我只是想创建一个空白/没有密码的用户,我无法在mac os x下使用Postgresql 9。

我应该采取哪些步骤来创建没有密码的用户。该命令总是要求我输入密码。

4 个答案:

答案 0 :(得分:61)

你正试图用createuser来修复错误的树。如果您想查看man的{​​{1}}页面,它会告诉您如果您确实需要密码并设置--no-password,登录将失败。 createuser实际上只是创建了一个用户。 确定用户必须如何进行身份验证。

身份验证主要在createuser处理,该pg_hba.conf决定是否在登录时要求密码。我从未在OS X上运行PostgreSQL。在Linux上,我的发行版的库存看起来像这样:

# TYPE  DATABASE        USER            CIDR-ADDRESS            METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     ident
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust

我会确保您拥有类似开发访问权限的第一行。注意:如果没有设置psql选项,--host将尝试连接unix套接字。如果您尝试连接psql --host localhost

,将使用第二行

答案 1 :(得分:32)

不是创建没有密码的用户,而是创建一个带有密码的.pgpass file以自动提供密码。所有使用libpq进行连接的应用程序都会遵守这一点,除了JDBC驱动程序和.NET驱动程序之外,几乎所有应用程序都是如此。

答案 2 :(得分:9)

更改PG用户的用户密码的另一种方式(我更喜欢)是登录postgres控制台(作为本地PC上的postgres用户),并发出SQL请求:

$ sudo -u postgres psql -w

# ALTER USER postgres WITH PASSWORD '';

答案 3 :(得分:0)

postgres=# ALTER USER postgres WITH PASSWORD '';
NOTICE:  empty string is not a valid password, clearing password
ALTER ROLE
postgres=#