2016-12-25 8 views
0

私は、さまざまな企業が独自のオーディオファイルをいくつかの追加情報とともにアップロードするWebアプリケーションを構築しています。私はDjango、Postgresを使ってそれを構築し、AWSでそれをホストしています。異なる企業に所属するユーザーは、Webサイトにログインしたときにのみデータにアクセスできます。自分のコンテンツにアクセスするさまざまなユーザーグループを処理するためのベストプラクティス

ウェブサイトでは、これらのユーザーがコンテンツをアップロードしたり、コンテンツを検索したり、コンテンツにアクセスしたりすることができます。

私の質問は、これらのアップロードされたコンテンツを処理するベストプラクティスは何ですか?企業ごとに異なるスキーマを作成したり、すべてのコンテンツをまとめたりして、各エントリが関連付ける企業IDに基づいて異なるコンテンツにアクセスできるようにする方がよいでしょうか?

答えて

1

すべてのコンテンツをまとめて、各エントリが関連付ける企業IDに基づいて異なるコンテンツにアクセスできるようにしますか?個人的に

、私はいくつかの理由で、これを行うだろう:

  1. それは維持する方が簡単です。新しい会社を追加することは、おそらく新しいスキーマといくつかのテーブルではなく、単に新しいIDを意味するだけです。
  2. アプリケーションコードまたはデータベースビューでセキュリティを追加できます。
  3. 同じデザインを使用する他社固有の機能を持つことができます。

私はまた、アプリケーションが特定のビュー(企業IDによって制限されたビュー)からクエリを実行できるようにするだけで、データベース側でデータセキュリティを強化することを推奨します。これは、誤って基本表から選択して会社のフィルターを忘れないようにし、ユーザーが自分のものではないデータを見られるようにすることを意味します。

これは私の意見です。そうでなければ実証されてうれしいです。

+0

お返事ありがとうございました!複数のスキーマを作成するオプションを検討していた理由は、同じデータベース内のさまざまなクエリに対してデータセキュリティを強制する方法がわかりません。これは長い話かもしれませんが、これを実装するための良いリソースを知っていますか?私はこれをgoogle検索しようとしていますが、私は直接関連性のあるものを見つけることはありません。 – YAL

関連する問題