質問

私はASP.NETアプリケーションで統合されたセキュリティを使用しています、IISとSQL ServerはWindows Server 2008 R2を実行している同じサーバーマシン上でホストされています。

は、ネットワーク間でアプリケーションにアクセスしてログインしたが、それらがデータベースに直接またはSQL Server Management Studioを介してアクセスされないようにすることはできませんか?

私のアプリケーションがクライアントの施設でクライアントのサーバーにデプロイされるため、データベースアクセスを保護しようとしています。

これは現在を使用しているマイ接続文字列です。

<add connectionString="Server=.\sqlexpress;Database=DB89akwA;Integrated Security=true" name="LocalSqlServer" providerName="System.Data.SqlClient" />

<add connectionString="Server=.\sqlexpress;Database=DB89akwA;Integrated Security=true" name="MainAppConnectionString" providerName="System.Data.SqlClient" />
.

これらは私が現在使用している2つの接続文字列ですが、ASP.NET認証のための1つは私のアプリケーションによって2番目です。これら両方の文字列は同じデータベースのものです。

任意の提案?

役に立ちましたか?

解決

クライアントの施設で実行されているデータベースを「安全な」ことはできません。クライアントのスタッフは、ASP.NET接続文字列からパスワードを取得できます。ドメイン管理者は、データベースへの常にのゲインアクセスを得ることができます(プロセスを記述する実際のMSDNの記事があります。システム管理者がロックアウトされているときにSQL Serverに接続します

データベースが持っていると感じる意識プロパティを非表示にしたい場合は、唯一の解決策はクライアントの前提にデータベースをデプロイすることではありません(たとえば、SQL Azureのようなホストされたデータベースを使用します)。

クライアントがデータベースに干渉しないようにするだけで、契約内に規定することができます。干渉の監査と検出が可能です。

他のヒント

はい、それは完全に可能です。統合セキュリティを使用してASP.NETにログインした人は、同じ資格情報を持つSQL Serverにログインできません。どちらも完全に切断されています。SQL Serverがアクセスできるように設定されている場合にのみ可能です。

私のアドバイスは、SQLログインとユーザーを作成し、それらにSQL Serverへのアクセスしか与えません。アプリケーションでは、接続文字列を作成するときに、統合セキュリティをtrueに設定しないでください。データベースにアクセスするために、ユーザーにSQLのユーザー名とパスワードを入力できるようにします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top