以最少的特权运行Heroku Postgres

时间:2013-03-15 13:48:15

标签: postgresql heroku least-privilege

我可以通过网络/应用程序连接到Heroku Postgres数据库,而不会有丢桌子的风险吗?

我正在为使用Heroku Postgres作为后端的第三方构建Heroku应用程序。第三方对安全性非常敏感,因此我正在考虑在整个应用程序中应用“分层安全性”。例如,检查Web /应用程序层的SQL注入攻击。应用“分层安全”方法我还应该保护数据库,以防错过潜在的SQL注入攻击,这可能会丢弃数据库表。

在我构建的其他系统中,数据库中至少有两个用户。首先是创建/删除表,索引,触发器等的数据库管理员,以及运行时权限少于数据库管理员的应用程序用户,而数据库管理员只能插入和更新记录。

在Heroku Postgres设置中,似乎没有办法创建具有较少权限的其他用户(没有“drop table”选项)。因此,应用程序必须与默认的Heroku Postgres用户连接,因此可能存在“删除表”的风险。

我正在运行Heroku Postgres Crane附件。

有没有人反对这个或者为这个场景做过任何创造性的工作?

1 个答案:

答案 0 :(得分:4)

使用Heroku Postgres,您只需要一个帐户即可连接。此类功能确实存在的一个选项是在Heroku Postgres上创建一个关注者。跟随者异步保持最新(通常只有大约一秒左右)并且是只读的。这将允许您向有需要的人授予关注者访问权限,同时不向他们提供领导者数据库的详细信息。