2017-03-26 13 views
0

サンドボックス内でSQLを実行する方法はありますか?サブクエリ(本当に安全?)、SQLエミュレータ(https://github.com/maciakl/jQuery-SQL-Emulator、バギー、遅い)、ROLLBACK(おそらく遅くて安全です)とCREATE TEMPORARYのようなものは選択肢ですが、何か良いものを見つけることを望みます。私は(SELECTまたはJOINまたはCSVとしてなど、出力COUNTまたはSUM)のユーザーによってカスタムSQLに可能なレポートツールを作成しようとしているサンドボックス/アイソレーションを使用してSQLクエリを実行する

これは実際のケースです。しかし、ユーザーが本番DBでSQLを実行できるようにすることは本当に危険です。より良い提案はありますか?

p.s.

点は、私が読んのみMySQLアカウントを作成することができます:私のプラットフォームは、MySQL + PHP + JSが

UPDATEです。しかし、これは、単一のテーブル(例えば、テーブル内のレコードのチェックイン、where department_id = xxおよびテーブル内のスタッフリストwhere department_id = xx)でアクセスできないと思われる行をユーザがクエリすることを妨げるものではない。

+0

は、その後、あなたのツールのポイントは何ですか? –

+0

テスト用の2番目のデータベースを作成します。 –

+0

安全なソリューションがあれば本番DBを使用できます。 –

答えて

0

解決策の1つは、少なくとも本番データベースの1つのスレーブをセットアップすることです。あなたはここにマスタースレーブレプリケーションの実装について読むことができます。

    を:あなたは(セット・アップすべきマスターとして)本番データベース上でそれらを実行しているのではなく、その上でさまざまなアクションを実行するために、1つのスレーブを使用することができます

    https://dev.mysql.com/doc/refman/5.7/en/replication.html

  • レポートツール
  • 実行バックアップ(あなたは、データベースの権利のバックアップを定期的にやっている?)
  • 実行他のテスト

あなたが乱用することができますを実行しますそのスレーブは、たとえそれを壊しても、運用データベースを害することはありません。

0

私の現在のソリューションは、それを証明しようとすることは安全である:あなたは本番DBにそれを使用しない場合

https://github.com/wilsonlmh/sqlSandbox

関連する問題