1

我想发出一个命令,从命令行向运行 Postgresql 的容器中的用户授予某些权限,而不必在容器内手动访问 psql。为此,您可以使用应用程序命令,这里是文档:https ://www.postgresql.org/docs/8.1/app-psql.html (我已经成功使用了其他应用程序命令,例如创建带有“docker exec -it samplePostgres createdb --username=root --owner=root --encoding=UTF8 sampleDB”的数据库)

但是在使用时:

docker exec -it samplePSQL psql -d sampleDB -c GRANT SELECT, INSERT, UPDATE ON table TO user;

它输出以下内容

psql: warning: extra command-line argument "INSERT," ignored
psql: warning: extra command-line argument "UPDATE" ignored
psql: warning: extra command-line argument "ON" ignored
psql: warning: extra command-line argument "table" ignored
psql: warning: extra command-line argument "TO" ignored
psql: warning: extra command-line argument "user" ignored
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: 
FATAL:  role "SELECT," does not exist

它以某种方式将“SELECT”视为用户?

当然,从容器内的 psql 运行它可以正常工作。

sampleDB=# GRANT SELECT, INSERT, UPDATE ON table TO user;

授予

4

0 回答 0