所以我已经做了。
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到底是授予什么呢?
你需要在运行前创建表。
GRANT SELECT ON ALL TABLES IN SCHEMA public TO myuser;
或者在创建表之前运行。
alter default privileges in schema public grant select on tables to myuser;