各テナントが独自のスキーマを持つマルチテナントデータベースを作成しています。私はJava JDBC & MySQLを使用しています。新しいテナントがサインアップすると、グループに割り当てられた名前がスキーマ名になります。マルチテナントデータベース用の新しいスキーマを安全に作成する
私の挑戦は、SQLインジェクションをせずにこれを行う方法です。どうやらあなたはこのように、スキーマ文を作成するパラメータ化することはできません:私は、文字列の名前だけでは文の最後に配置することを可能にする場合は
create schema ?
、私は、SQLインジェクションのためginormousセキュリティホールを開きます。だから、私はちょうど最高のアプローチがここにあるのだろうかと思っています。
スキーマ名を実際にグループ名にするのではなく、内部プロセスでスキーマ名を作成することをお勧めします。 (groupId + firstThreeLettersOfName)の行に沿った何か。しかし、私はアイデアを公開しています。
ありがとうございました。
私の解決策は、テナントごとに別々のスキーマを使用しないことです。それぞれのテナントが別々のスキーマを必要とする理由について、私たちに手がかりを与えることができますか? –