現在、Windows デスクトップ アプリケーションを Web サイト/アプリケーションに変換する作業を行っています。アプリケーション全体のデータ構造は、SQL Server データベースに格納されます。各データベースは、異なる「ライブラリ」を表します。1 人の顧客が多数の異なる「ライブラリ」(データベース) を持つことができます。私は、多数の顧客のインストールを同じ Web サーバーに配置することを考えています。
これはインターネット サイトになるので、Microsoft が提供するサイト アクセス用のユーザー アカウント管理を使用することを強く検討しています。次に、特定のデータベースに対する権限をユーザーに割り当てることができる管理者レベルのアクセスを提供することを考えています。(つまり、既定では、Microsoft のメカニズムを介してユーザー アカウントを作成しても、実際の機能は提供されません。)
ユーザーアクセスには、次の一般的なレベルがあり
ます
。
レコードの詳細)
4. 削除アクセス (これは何をすると思いますか :)?)
5.
管理者アクセス (ユーザーは他のユーザーの属性を変更できます)
すべての SQL Server インタラクション。したがって、上記のアクセス レベル 1 ~ 5 の許可/拒否を処理するすべてのコードは、SQL Server のユーザー アカウント管理ではなく、私の Web サイト ページのコードによって処理されます。
私は、すべてのユーザー名と、アカウントが (少なくとも) 読み取りアクセス権 (上記のレベル 1 アクセス権) を持っているライブラリを含む、1 つの中央データベースを用意することを考えています。次に、レベル 2 から 5 が、そのユーザーとそのデータベースの各データベースに格納されます。
2 つの疑問が浮かびます。
- このアプローチは合理的ですか?より安全な別の方法 (SQL Server のユーザー管理ツールを使用するなど) がありませんか?
- この方法を実行する場合、Web サイトで「スーパーユーザー」アカウントを作成するにはどうすればよいですか? ある種の「NETWORK SERVICE」または「LOCAL SERVICE」アカウントであると想定していますが、ASP.NET でどのアカウントが何を行うかについては、まだ少し曖昧です。
ありがとう!