使用通过 hibernate 无法访问创建的 Google Cloud SQL (Postgres) 表

Mic*_*per 2 postgresql hibernate google-cloud-sql google-cloud-platform

如果您使用 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
Run Code Online (Sandbox Code Playgroud)

我想指出的是,postgres 用户能够完全操作不是使用 hibernate 创建的表,并且 hibernate 能够完全操作数据,但不能操作我创建的其他用户。

Mic*_*per 6

所以最终的解决方案非常简单。简单地:

将 user_you_authed_in_java 授予 user_you_want_to_use;