【问题标题】:Postgres: Restricting users ability to view schemasPostgres:限制用户查看模式的能力
【发布时间】:2023-03-31 09:46:01
【问题描述】:

我目前在 Postgres 中工作,并且正在创建一些用户。在创建这些用户并对其进行测试时,我注意到他们能够查看比他们可以访问的更多的模式。除此之外,他们还可以查看受限模式表、视图和函数。这并不理想。

在创建用户及其权限时,有没有办法让用户设置为只能查看某些架构,而不能查看我们数据库中的所有架构?

我还应该提到,这些用户将使用 PgAdmin 或 Tableau 查看我们的 postgres 数据库。

【问题讨论】:

    标签: postgresql permissions tableau-api pgadmin user-permissions


    【解决方案1】:

    是的。使用命令 GRANT USAGE ON [schemaname] TO [username]REVOKE USAGE ON [schemaname] FROM [username] 来控制对 Schema 本身的访问。

    您可能还需要执行REVOKE USAGE ON [schemaname] FROM public 来删除默认访问权限。

    我建议查看https://www.postgresql.org/docs/current/static/sql-grant.html 以获取完整的 GRANT 命令集,因为您可能还需要授予/撤销某些表的读/写访问权限。

    【讨论】:

    • 感谢评论!我正在从我的 test_user 撤消使用,但他们仍然能够看到我从 PgAdmin 的 UI 中撤消了使用的架构。用户可以看到它,但不能从中选择任何东西。我的最终目标是让他们甚至看不到架构的存在。
    • 不确定。根据您的用例,您可以在主机上创建单独的数据库实例,但当然,您不能轻易拥有一个可以同时查看所有这些实例的主用户。
    • 遗憾的是,到目前为止,这是我能想到的唯一解决方案。我知道这种类型的访问控制在使用像 SSMS 这样的工具时是可能的,但只是无法使用 PgAdmin/Postgres 进行排序。到目前为止非常烦人。再次感谢您帮助调查此问题!
    • @lucid_goose 您是否曾经正确地限制用户访问特定架构?我也在为此苦苦挣扎
    猜你喜欢
    • 2017-08-21
    • 2017-07-07
    • 2021-02-22
    • 2022-10-24
    • 1970-01-01
    • 2015-05-09
    • 1970-01-01
    • 2012-12-29
    • 1970-01-01
    相关资源
    最近更新 更多