在以用户身份更改密码时遇到问题,在没有管理员权限的情况下以用户身份更改密码时,我在文档说明中找不到任何内容。
我已以用户abc
身份登录并执行:
set password for "abc" = 'abc'
我收到:ERR: error authorizing query: abc not authorized to execute statement 'SET PASSWORD FOR abc = [REDACTED]', requires admin privilege
是否可以以非管理员身份更改密码?
是的,标准用户不应该这样做。您可以更改密码,如果未设置管理员权限,则不能更改其他人的密码。
假设有testuser
个标准用户,没有管理员特权,另一个名为admin
的用户,具有管理员特权。
如果您使用admin登录,那么您应该可以使用CLI更改任何人的密码:
set password for "testuser" = 'testing'
使用testuser
登录并更改管理员密码,当然会发生en错误:
set password for "admin" = 'adminpass'
响应:
ERR: error authorizing query: testuser not authorized to execute statement 'SET PASSWORD FOR admin = [REDACTED]', requires admin privilege
即使您用testuser运行show users
,它也不会让您看到其他用户,并且是管理员权限。
ERR: error authorizing query: testuser not authorized to execute statement 'SHOW USERS', requires admin privilege
更改任何人的密码的解决方案:
CREATE USER "someuser" WITH PASSWORD 'somepassword' WITH ALL PRIVILEGES
但是它需要管理员权限。