我想获取 PostgreSQL 数据库的列表。PostgreSQL 由postgres
用户运行,所以我需要使用runuser
.
当我执行时
runuser -l postgres -c 'psql -tc "SELECT datname FROM pg_database WHERE datname <> ALL ('{template0,template1,postgres}');"'
我明白了
ERROR: column "template0" does not exist
LINE 1: ...CT datname FROM pg_database WHERE datname <> ALL (template0)...
因此,如果我在登录时执行 runuser 命令,postgres
它就su
可以工作。
如果您可以不使用该
-l
选项,最简单的解决方案是利用该runuser
命令提供的替代语法:等等,我们已经消除了一级引用。