4

テーブルをドロップするリスクなしに、Web/アプリケーション経由で Heroku Postgres データベースに接続できますか?

バックエンドに Heroku Postgres を使用するサードパーティ向けの Heroku アプリケーションを構築しています。サードパーティはセキュリティに非常に敏感であるため、アプリケーション全体に「レイヤード セキュリティ」を適用することを検討しています。たとえば、Web/アプリケーション層で SQL インジェクション攻撃をチェックします。「階層化されたセキュリティ」アプローチを適用して、データベース テーブルを削除する可能性のある潜在的な SQL インジェクション攻撃を見逃す場合に備えて、データベースを保護する必要もあります。

私が構築した他のシステムでは、データベースに最低 2 人のユーザーが存在します。まず、テーブル、インデックス、トリガーなどを作成/削除するデータベース管理者と、たとえばレコードの挿入と更新しかできないデータベース管理者よりも低い権限で実行するアプリケーション ユーザーです。

Heroku Postgres セットアップ内では、(「ドロップ テーブル」オプションなしで) 権限の低い別のユーザーを作成する方法はないようです。そのため、アプリケーションはデフォルトの Heroku Postgres ユーザーに接続する必要があるため、「ドロップ テーブル」のリスクが存在する可能性があります。

Heroku Postgres Crane アドオンを実行しています。

誰かがこれに反対したり、このシナリオに対して創造的な回避策を講じたりしましたか?

4

1 に答える 1

4

Heroku Postgres では、接続するアカウントは 1 つしかありません。このタイプの機能のために存在するオプションの 1 つは、Heroku Postgres でフォロワーを作成することです。フォロワーは非同期的に最新の状態に保たれ (通常は 1 秒程度遅れます)、読み取り専用です。これにより、リーダーデータベースの詳細を提供せずに、必要な人にフォロワーへのアクセスを許可できます。

于 2013-03-18T06:44:00.383 に答える