通过Postgresql授予对所有数据库及其表的访问权。

问题描述 投票:0回答:1

所以我已经做了。

GRANT USAGE ON SCHEMA public TO myuser; 
GRANT SELECT ON ALL TABLES IN SCHEMA public TO myuser;

甚至

GRANT ALL PRIVILEGES ON DATABASE mydb1 TO myuser;
GRANT ALL PRIVILEGES ON DATABASE mydb2 TO myuser;

但我还是要 ERROR: permission denied 错误。

=> select * from language;
ERROR:  permission denied for table language

我错过了什么?

而对于 GRANT SELECT ON ALL TABLES IN SCHEMA public TO myuser我目前的三个Postgresql数据库都有SCHEMA,叫做 public,那SQL到底是授予什么呢?

windows postgresql access grant
1个回答
0
投票

你需要在运行前创建表。

GRANT SELECT ON ALL TABLES IN SCHEMA public TO myuser;

或者在创建表之前运行。

alter default privileges in schema public grant select on tables to myuser;
© www.soinside.com 2019 - 2024. All rights reserved.