我在 Windows 7 上使用 PostgreSQL 9.6.2,当我从命令提示符启动 psql 时:
psql -U myusername
Run Code Online (Sandbox Code Playgroud)
它要求输入密码并登录。但是如果我这样做:
psql -U postgres
Run Code Online (Sandbox Code Playgroud)
它会以超级用户权限直接登录到主数据库,而无需输入任何类型的密码。如果我输入:
psql -U postgres -W
Run Code Online (Sandbox Code Playgroud)
然后它会询问 su 密码,顺便说一下,这是我在一键安装过程中设置的密码。
我已经检查过了pg_hba.conf,它被设置md5为所有用户,所有数据库。我什postgres=# ALTER USER postgres PASSWORD 'myPassword';至用: 更改了数据库中的密码,但无济于事。
问题是为什么当我以普通用户身份登录时它要求输入密码而当我以超级用户身份登录时却没有?这不是主要问题,因为在任何一种情况下我都可以访问我的数据库,但它似乎根本不安全。任何解决方法将不胜感激。