Postgresql 以最低权限运行Heroku Postgres

Postgresql 以最低权限运行Heroku Postgres,postgresql,heroku,least-privilege,Postgresql,Heroku,Least Privilege,我是否可以通过web/应用程序连接到Heroku Postgres数据库而不会丢失表 我正在为使用Heroku Postgres作为后端的第三方构建Heroku应用程序。第三方对安全非常敏感,因此我希望在整个应用程序中应用“分层安全”。例如,在web/应用程序层检查SQL注入攻击。应用“分层安全”方法,我还应该保护数据库,以防丢失潜在的SQL注入攻击,这可能会删除数据库表 在我构建的其他系统中,数据库中至少有两个用户。首先是创建/删除表、索引、触发器等的数据库管理员,以及运行时权限低于数据库管理

我是否可以通过web/应用程序连接到Heroku Postgres数据库而不会丢失表

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

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

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

我正在运行Heroku Postgres Crane附加组件


有没有人遇到过这种情况,或者有任何创造性的解决方案?

对于Heroku Postgres,您只有一个帐户可以连接。这种类型的功能确实存在一个选项,即在Heroku Postgres上创建一个跟随者。跟随者异步保持最新(通常只落后一秒左右),并且是只读的。这将允许您向那些需要它的人授予对追随者的访问权限,同时不向他们提供leader db的详细信息。

谢谢@CraigKerstiens追随者数据库建议在权限要求最低的情况下适用于只读访问。不幸的是,在我的场景中,最低权限要求是用户需要对数据库进行读写访问(仅此而已),这对于监控解决方案(在这种情况下是只读用户)也很有用。pg extras也应该使用此用户来避免灾难场景(太偏执了?)。应该注意的是,这些用户名和密码与master DB相同!该帐户由于复制而存在,因此无法更改其凭据。有人可能会说,如果“第三方对安全非常敏感”,那么您根本不应该使用云提供商。Heroku或其上游供应商AWS有多少人能够访问数据?