ユーザから直接入力されるSQLクエリを安全に実行する方法があるかどうかを知る必要があります。管理ツールを使用して、管理者は1時間ごとにデータベースに対してSQLクエリを実行することによって、主要なパフォーマンス指標を作成できます。問題は、このプロセスが明らかにユーザーエラーや悪意のあるユーザーによる悪い事態に敏感であることです(ユーザーがこのクエリのテーブルからデータを簡単に削除できるなど)。私はこれらのステートメントを実行する安全な方法があるのか、あらかじめ何をするのかを知っているかどうか疑問に思っています。ユーザが作成したSQLクエリを実行する
1つの提案では、トランザクション内でSQLを実行し、そのたびにトランザクションをロールバックします。これはまともな解決策ですか?
これは完全に安全な方法ではありません。ユーザーに各コマンドを実行する権限を与えることができます(ユーザーが特定のテーブルからINSERTとSELECTを実行できるとします) PostgreSQLがthisのようなものをサポートしているかどうかわかりません。これを行う別の方法は、ユーザーからのSQLクエリを受け取り、分析し、承認している場合は実行し、フォワードするサーバーアプリケーションを作成することですユーザーへのクエリ – null
ストアドプロシージャを実行します。https://msdn.microsoft.com/en-us/library/ms189915.aspx – jdweng