Permissions 没有使用psql权限的Root用户

Permissions 没有使用psql权限的Root用户,permissions,psql,Permissions,Psql,我需要使用root用户在crontab上运行脚本,例如读取和写入所有/home文件夹。 但是在shell脚本中我还需要做的一件事是运行psql。问题: 我的用户(me=whoami而不是root用户)可以运行例如psql-c“\l” 根用户不能(!)使用psql-c“\l”。。。并且错误没有意义“psql:错误:无法连接到服务器:致命:数据库“根”不存在” 如何使root运行psql PS:正在寻找一种“将所有数据库上的所有权限授予root用户”。root允许运行psql,但任何人都无法连

我需要使用root用户在crontab上运行脚本,例如读取和写入所有
/home
文件夹。 但是在shell脚本中我还需要做的一件事是运行
psql
。问题:

  • 我的用户(me=
    whoami
    而不是root用户)可以运行例如
    psql-c“\l”
  • 根用户不能(!)使用
    psql-c“\l”
    。。。并且错误没有意义
    “psql:错误:无法连接到服务器:致命:数据库“根”不存在”
如何使root运行
psql


PS:正在寻找一种“将所有数据库上的所有权限授予root用户”。
root
允许运行
psql
,但任何人都无法连接到不存在的数据库

使用
psql
的数据库用户名的默认值是操作系统用户名,数据库的默认值与数据库用户名相同

因此,必须明确指定正确的数据库和数据库用户:

psql-U postgres-d postgres-l
接下来您要抱怨的是对等身份验证被拒绝


为了避免这种情况,请以操作系统用户身份运行
postgres
或更改
pg_hba.conf

中的规则,谢谢,
psql-U postgres-l
正在使用用户根运行(!)。在我的shell上,使用用户john
psql-l
可以很好地工作,但是没有数据库john,不能使用
psql john
psql-d john
。。。根也一样。
psql-c“etc”
可以与root的
psql-U postgres-c“etc”
和john的
psql-c“etc”一起使用。因此,我不同意“您必须明确指定正确的数据库用户”我的
/etc/postgresql/12/main/pg_hba.conf
具有line
local all postgres peer map=superuser我说过“数据库的默认值与数据库用户名相同”,因此,如果您使用
-U postgres
,数据库将默认为
postgres
。您好,这个短语对于john的
psql-c“etc”
,没有任何意义,因为它与
psql john-c“etc”
不同,数据库不是用户名。如果您在解析我的英语时遇到问题,请在,在那里它被详细地解释了。