【问题标题】:How restrict Tableau to view some tables from Postgres如何限制 Tableau 从 Postgres 查看一些表
【发布时间】:2014-02-25 06:52:27
【问题描述】:

我对 Tableau 和 PostgreSQL 都是新手,这是我的问题。

我已经在 Postgres 中创建了不同的用户,我尝试探索 GRANTREVOKE 命令以限制某些用户访问某个表。但是,在我的 Tableau 桌面中,每当我使用任何用户帐户连接到 Postgres 时,Tableau 仍然会显示我想向该用户隐藏的所有表。例如,我想要的是 user1 只能查看/导入 table1 和 table2,而 user2 只能查看/导入 table2 和 table3。

我不知道我错过了什么,任何帮助将不胜感激。

操作系统:纯windows环境。

【问题讨论】:

  • 如果通过Pgadmin使用user1登录PostgreSQL数据库,能确认只有table1和table2可见吗?

标签: postgresql tableau-api


【解决方案1】:

仅仅因为在您指定数据连接时 Tableau 连接面板中列出了表名称,并不意味着特定用户具有对该表的选择访问权限。

如果您撤销对 PostGres 表的选择访问权限,然后通过 Tableau(或任何其他工具)连接到 PostGres,那么您将无法从该表中选择任何数据。如果您使用相同的 Tableau 连接,但使用对表具有选择访问权限的 Postgres 帐户,那么您将能够选择数据。

【讨论】:

  • 是的,先生,虽然 user1 无法访问 table3,但该用户仍然可以看到它,导致用户端有点混乱。知道我们有数百个表和视图,我认为简化它的最佳方法是仅显示仅适用于该用户的表和字段。 tnx
  • @user2530448 向 Tableau 推荐新功能的最佳方式是将其添加到他们的想法页面community.tableausoftware.com/community/ideas
【解决方案2】:

Based on this link,报告的行为与 PostgreSQL 和设计有关,因此不是 Tableau 问题。

建议的解决方法之一是设置per-user schema,但如果有大量用户,这将是一笔巨大的开销。

【讨论】:

  • 听起来很有趣,但这是否意味着我需要将特定表复制到为特定用户组创建的新模式中?谢谢。
【解决方案3】:

我不确定说 Tableau 无法控制从 Postgres 数据库中列出哪些表是否准确。

当 Tableau 连接时,这是在 Postgres 中执行的:

select relname, nspname, relkind 
from pg_catalog.pg_class c, 
    pg_catalog.pg_namespace n 
where relkind in ('r', 'v') 
and nspname not in ('pg_catalog', 'information_schema', 'pg_toast', 'pg_temp_1') 
and n.oid = relnamespace 
order by nspname, relname

在我看来应该有一种方法来编辑它。

编辑:我后来发现这个查询是在 postgres 驱动程序中发出的。只需修改它并重新编译驱动程序即可。

【讨论】:

    猜你喜欢
    • 2018-03-05
    • 2016-01-13
    • 2023-03-31
    • 1970-01-01
    • 2015-02-12
    • 1970-01-01
    • 2019-02-10
    • 1970-01-01
    相关资源
    最近更新 更多