ユーザーが複雑な SELECT ステートメントを作成できるアプリケーションを作成しています。生成される SQL は信頼できず、完全に恣意的です。
信頼できない SQL を比較的安全に実行する方法が必要です。私の計画は、関連するスキーマとテーブルに対する SELECT 権限のみを持つデータベース ユーザーを作成することです。信頼できない SQL は、そのユーザーとして実行されます。
それで何がうまくいかない可能性がありますか?:)
postgres 自体に重大な脆弱性がないと仮定すると、ユーザーは多数のクロス結合を実行し、データベースに過負荷をかける可能性があります。これは、セッション タイムアウトで軽減できます。
うまくいかないことがたくさんあるように感じますが、リストを作成するのに苦労しています.
編集:
これまでのコメント/回答に基づいて、このツールを使用している人の数は常に 0 に非常に近いことに注意してください。