1

ASP.NETアプリケーションとSQLServer(2008)データベースをライブ(本番)サーバーに展開しています。物理サーバーはSQLServer2008とIIS7の両方を実行しています。これはホスティング会社によって提供されており、内部ネットワークの一部ではありません

データベースのセキュリティとASP.NETアプリケーションの接続文字列に関していくつか質問があります。

以前は、データベースユーザーを作成し、テーブルごとにSELECT / INSERTなどのアクセス許可を指定していましたが、このデータベースには50以上のテーブルがあるため、これを行うには長い時間がかかります。

アプリケーションでは、各テーブルにSELECT / INSERT / DELETE/UPDATEが必要です。

  • 各テーブルの権限を個別に指定するよりも良い方法はありますか?
  • ライブWebサーバーの統合セキュリティに相当するものはありますか?欠点は何ですか?
  • または、特定のユーザーのアクセス権を特定のデータベースのフルアクセスに昇格させる方法はありますか?

また、接続文字列はどのように変化しますか?

私は専門家のアドバイスを探しています。正しい方向に私を向けてくれる人と、それを行うためのより良い方法を実現する方法に関するドキュメントへのリンクを探しています。

どうもありがとう。

4

2 に答える 2

1

箇条書きリストには、基本的に1つではなく、3つの無関係な質問があります。

  • 最初のものは、必ずしもプログラミングの問題ではなく、SQL Serverを扱っている ため、 ServerFault.comにより適しています。
  • 2番目の統合セキュリティについては、はい、ASP.NETで統合セキュリティを使用する方法があります。この記事を参照してください:http://msdn.microsoft.com/en-us/library/bsz5788z.aspx
    • 最大の欠点は、構成が多いことです。これは非標準の(ただしサポートされている)構成であるため、保守プログラマーはこれまでセットアップを見たことがない可能性があります。
    • また、これを行っている場合、他の場所で権限を持つアカウントを使用していると、セキュリティ上の懸念が生じる可能性があります。最小特権の原則に必ず従ってください。Webサイトごとにドメインアカウントを作成するのが最善の場合もあります。そのため、1つが侵害された場合でも、被害を制限できます。あなたは私よりもあなたのセキュリティ上の懸念をよく知っているので、これは適切なアドバイスかもしれないし、そうでないかもしれませんが、それは考慮すべきことです。
    • 最後に(そしてこれはおそらく指摘するにはあまりにも明白です)、実際の人のUserIdを使用するのは愚かなことです。その人が会社を辞め、彼らのアカウントが削除された場合、ウェブサイトは明らかに壊れます。
  • 最初の質問に対する答えを見つけたので、3番目の質問は議論の余地があります。
于 2012-04-16T17:46:37.570 に答える
1

既存のデータベースロールを作成または使用できます。次に、ユーザーをそのロールに入れて、そのユーザーが必要なすべての権限を持つことができるようにします。たとえば、説明したシナリオを前提として、接続で使用しているユーザーアカウントをdb_datawriterロールに配置できます。

http://msdn.microsoft.com/en-us/library/ms189121%28v=sql.105%29.aspxを参照してください

この記事は、ユーザーの権限を昇格させる方法にも関連しています。

統合セキュリティは機能します。接続を確立しているコンピューターで使用されているログインが、データベースサーバー(同じまたは信頼できるWindowsドメイン内)によって認識可能である必要があります。

于 2012-04-16T17:58:08.650 に答える