我使用postgresql命令'createuser myusername'。它始终提示我输入密码。如果我将密码留空,则会出现错误,指出没有密码。
我只是想创建一个空白/没有密码的用户,我无法在mac os x下使用Postgresql 9。
我应该采取哪些步骤来创建没有密码的用户。该命令总是要求我输入密码。
答案 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=#