如果您使用Hibernate创建表,则这些表是其他用户无法访问的(它们归Cloudsqladmin拥有)。所有尝试向其他用户授予许可的尝试都失败了,因此,当我使用我拥有的唯一凭据(非cloudsqladmin用户)访问shell或GUI时,除了列出这些表外,他们无法访问这些表表。
通过IAM,我授予了所有权限的服务帐户访问。
例如。登录为Postgres用户:
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO postgres;
ERROR: permission denied for relation mytable
GRANT SELECT ON post to postgres;
ERROR: permission denied for relation mytable
ALTER TABLE public.mytable OWNER to postgres;
ERROR: must be owner of relation mytable
我想注意,Postgres用户能够完全操纵未使用Hibernate创建的表,Hibernate能够完全操纵数据,而不是我创建的其他用户。
,因此最终解决方案非常简单。简单:
授予user_you_authed_in_in_java to user_you_want_to_use;