【发布时间】:2019-10-11 09:38:03
【问题描述】:
我在 GCP 上使用 CloudSQL Postgres 11,我有一些关于权限和授权的问题。我现在只是不明白,对 postgres 还很陌生。
我有一个用户,pgadmin,它是一个超级用户。有了这个用户,我可以连接到实例并创建一个名为“沙盒”的数据库。
然后我有一个应用角色,定义如下:
CREATE ROLE app;
GRANT CONNECT ON DATABASE <database name> TO app;
GRANT USAGE, CREATE ON SCHEMA public TO app;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO app;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL PRIVILEGES ON TABLES TO app;
GRANT USAGE ON ALL SEQUENCES IN SCHEMA public TO app;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT USAGE ON SEQUENCES TO app;
我创建了一个名为 app_sandbox 的用户,我授予该角色。
然后,应用用户使用创建 2 个表的 flyway 进行数据库迁移。事情的那一面很好。
但是对于我的超级用户 pgadmin,我看不到这些表或查询它们,即使这个用户拥有数据库并且是超级用户。我尝试过各种资助。感觉好像我遗漏了一些重要的东西,因为即使我真的要使用 pgadmin 用户创建一个只读角色,我也无法授予对数据库公共架构中基础表的访问权限。
我错过了什么?
【问题讨论】:
标签: postgresql google-cloud-sql postgresql-11