私は、ASP.NET SQL を使用した承認で保護されたプライベート サイト管理アプリケーションを備えた ASP.NET MVC サイトを持っています。訪問者がアカウントにサインアップできるようにするには、パブリック サイトのログインを追加する必要があります。
私は、既存のユーザー データベースを拡張し、ロールに依存してパブリック ユーザーをバック オフィスから遠ざけるのではなく、パブリック サイト用に完全に個別のストレージを作成する必要があると考えています。これをしない理由はありますか?
私は、ASP.NET SQL を使用した承認で保護されたプライベート サイト管理アプリケーションを備えた ASP.NET MVC サイトを持っています。訪問者がアカウントにサインアップできるようにするには、パブリック サイトのログインを追加する必要があります。
私は、既存のユーザー データベースを拡張し、ロールに依存してパブリック ユーザーをバック オフィスから遠ざけるのではなく、パブリック サイト用に完全に個別のストレージを作成する必要があると考えています。これをしない理由はありますか?
はいあります。プライベート データベースをパブリック データベースから分離できます。2 つのデータベース ユーザー アカウントを作成し、必要な 1 つのデータベースにのみアクセスできるようにします。パブリック アプリとプライベート アプリは異なるアカウントを使用します。次に、データベース アカウントをロックダウンして、Web アプリが機能するために必要な権限のみを持っていることを確認します。(使用しているデータベースがわかりません。ms-sql を使用している場合は、xp_cmdshell にアクセスできないことを確認してください。mysql を使用している場合は、アカウントに FILE 権限がないことを確認してください。その他の考慮事項があります。しかし、これはこの質問の範囲外です。)
サイトのパブリック部分で SQL インジェクションの脆弱性が見つかった場合、攻撃者はその 1 つのデータベースにアクセスでき、プライベート サイトは攻撃の影響を受けません。
時間と潜在的にお金が1つの理由でしょう。そうでなければ、時間があれば。必要に応じて、目前の問題を正確に知らない場合、それはまた多くの複雑さを追加する可能性があります...
HTH。
ユーザーが複数の役割を持つことはありますか? 同じユーザーを複数のデータベースに保存することになる可能性はありますか? もしそうなら、私はあなたのユーザーを統合DBに保持します.