我需要授予客户访问我数据库中一组“ View ”的权限。我让它工作,以便用户/角色可以针对所需的 View 而不是任何表进行选择。但是,用户/角色仍然可以浏览模式并查看表和表的列和数据类型等。有没有办法防止这种情况发生?因此,如果用户/角色使用 PgAdmin III 或 psql 或类似的东西访问数据库,他们只能“看到”授权 View 而没有其他内容?
最佳答案
如果你想避免在物化 View 中复制所有数据..
您可以设置另一个数据库 - 在不同的集群中,这样它就不会共享同一个目录。这甚至可以在不同的机器上。
- 通过 dblink 访问您主要数据库中的 View .
- 只允许客户无法访问的定义用户通过 dblink 访问 prime db。
- 创建表函数以访问主要服务器上的数据。
- 提供从这些表函数中选择的 View ,并允许您的客户用户
SELECT
。
现在他们无法访问基表。
关于PostgreSQL 用户/角色仅限于查看?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12114529/