2016-11-14 67 views
1

我正在为我的项目寻找一个数据库,并且想要尝试一个我以前没有工作过的新项目,以便学习并找到项目的优势。我想尝试的一个最喜欢的是Postgres,但不一定。是否可以为用户设置数据库行级权限?

其中一个功能,我想看看是否有可能是设置的行级权限经过身份验证,并在我的系统授权的用户。

说,我有一个用户john谁是一个普通user。作为常规用户,John只能创建/更新自己的行,而不能创建其他行,并且可以读取数据库中的某些视图。

我知道我可以使这些权限在应用层面的工作,但如果它在数据库中可用,我想尝试一下。

是否存在具有此功能开箱即用的公共数据库?

回答

1

是的,它确实有可能和PostgreSQL的9.5(以及更早版本在一定程度上)很好的支持。

https://www.postgresql.org/docs/9.5/static/ddl-rowsecurity.html

这就是所谓的行安全。

几件事情要记住:

  1. 它是灵活
  2. 可以使用current_user变量的访问控制
  3. 它依赖于实际的PostgreSQL用户

有时在应用程序开发中,为您的Web应用程序中的每种类型的已验证用户分配数据库用户是不现实的。还有其他方法可以解决这个问题。

在我的一些应用程序中,当连接被Web请求拾取时,我们设置postgresql变量(set command)。这些变量记录了谁被认证。然后我们使用视图来控制基于这些变量的访问。评论你是否想要更多关于这种做法的细节。

相关问题