我使用谷歌 cloudsql 但这是一个更通用的 postgres 问题。
我有一个名为 cloudsqliamserviceaccount 的角色(已由 cloudsql 创建和管理)。
cloudsqliamserviceaccount 角色不是任何其他角色的成员。
每当我创建一个新的 postgres 用户(通过 GCP 控制台或 gcloud)时,他们都会被添加到这个角色中。我无法将它们从角色中删除,因为它会破坏 cloudsql IAM 集成。
cloudsqliamserviceaccount 角色具有非常全面的权限。它可以连接到所有数据库并在所有数据库上执行 CRUD。但我不确定如何查看其完整的权限列表。
总之我有这个角色“cloudsqliamserviceaccount”。我如何查看它可以访问的内容?我为我创建的每个新数据库自动获取 CRUD,但它不是任何其他角色的成员。这个权限来自哪里,我怎么看?
权限存储在单个对象上,并且没有可以查看所有对象的中央视图。
您可以使用每种对象的访问权限查询功能来获取该信息。
对于
SELECT
表、视图、序列、复合类型或物化视图,可能是:您需要对其他对象类型进行类似查询。
请注意,这样的查询只会提供有关当前数据库中对象的信息,因此您必须依次在每个数据库上运行它。
另一种粗略的方法是运行
这将为您提供一条错误消息并列出该角色在当前数据库中拥有的一些权限。