我在 Google Cloud SQL 上拥有一个由用户“api”创建的 PostgreSQL 数据库。现在我想使用自己的用户读取该数据库中的某些数据。我可以连接到数据库,但运行以下命令时出错:
SELECT * FROM data;
I get the error:
ERROR: permission denied for table data
编辑
我尝试过GRANT ALL PRIVILEGES ON DATABASE website TO sev;
但不起作用。定义数据库的SQL如下:
CREATE DATABASE website
WITH
OWNER = cloudsqlsuperuser
ENCODING = 'UTF8'
LC_COLLATE = 'en_US.UTF8'
LC_CTYPE = 'en_US.UTF8'
TABLESPACE = pg_default
CONNECTION LIMIT = -1;
GRANT ALL ON DATABASE website TO cloudsqlsuperuser;
GRANT TEMPORARY, CONNECT ON DATABASE website TO PUBLIC;
GRANT ALL ON DATABASE website TO sev;
GRANT ALL ... TO api
这一行,并且所有者是“cloudsqlsuperuser”,那么“api”用户为什么有访问权限呢?在我看来,似乎还有其他方法可以实现这一点... - sevapi
有哪些权限?我检查了 \du,发现api
和sev
都是cloudsqlsuperuser
组的成员,而该组是数据库的所有者。我本以为api
的权限来自于此,但这并不能解释为什么sev
没有这些权限。 - sev