阻止用户查看他们无权访问的对象

时间:2016-06-10 00:01:00

标签: postgresql permissions postgresql-9.5

什么

我有共享数据库的用户,但有自己的架构。每个用户只能访问其架构上的对象 - 它们已被明确撤销对不属于他们的架构的使用。

我并不担心用户不正当地访问他人的架构;但是,我非常希望他们不能看到他们无法访问的其他架构的内容甚至是否存在。

WHY

我知道这主要是“装饰性的”,但主要原因是我的用户不必转移他们在某些工具(Tableau,DB IDE等)中无法访问的对象 - 所以我认为它确实增加了一些实用价值。

ATTEMPTS

我一直在寻找解决方案,但还没找到一个有效的解决方案。例如,我撤消了用户对.when("/home", { templateUrl: "homeView.html", controller: "homeController", resolve: { user: function(AuthenticationService){ return AuthenticationService.getUser(); } } }) app.controller("homeController", function ($scope, user) { $scope.user = user; }); information_schema的访问权限(我知道不建议这样做);但它没有效果。

这一切都可能吗?

1 个答案:

答案 0 :(得分:0)

无法限制对pg_class,pg_attribute或pg_proc的访问。因此,只有通过将每个用户分隔在自己的数据库而不是单独的模式中,才能实现您想要的目标。