根据PostgreSQL中的值和用户标识限制对行的访问

时间:2015-08-12 20:41:30

标签: postgresql

在PostgreSQL中,如何根据用户身份限制对表中某些行(隐藏数据)的访问? 感谢

1 个答案:

答案 0 :(得分:0)

PostgreSQL 9.5 adds row-level security,这是一种内置的方式来做你想做的事。

您可以使用视图在旧版本中模拟它。 SECURITY BARRIER视图在PostgreSQL 9.4中是可更新的,因此您可以在视图谓词应用行访问限制的位置创建所需的视图。拒绝向用户访问基础表并授予对视图的访问权限。他们现在必须通过视图执行对表的所有访问,该视图具有限制他们可以看到的内容的过滤器。

在9.3及更早版本中,您无法在视图上使用addClass()并仍然可以更新它。你仍然可以使用视图,但它很漏洞;可以编写PL / PgSQL函数的用户可以轻松地公开他们不应该看到的数据,也可以只使用内置函数。