0

ASP.netアプリケーションで統合セキュリティを使用しています。IISとSQLServerはどちらも、Windows Server2008R2を実行している同じサーバーマシンでホストされています。

ユーザーがネットワークを介してアプリケーションにアクセスし、ユーザーがログインすることを許可することはできますが、直接または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つの接続文字列です。1つはASP.net認証用で、もう1つはアプリケーションで使用されています。これらの両方の文字列は同じであり、同じデータベースのものです。

助言がありますか?

4

2 に答える 2

2

クライアントの構内で実行されているデータベースを「保護」することはできません。クライアントのスタッフは、ASP.Net接続文字列からパスワードを取得できます。ドメイン管理者はいつでもデータベースにアクセスできます(プロセスを説明する実際のMSDNの記事があります:システム管理者がロックアウトされている場合はSQL Serverに接続します)。

データベースにあると思われるIntelectualプロパティを非表示にする場合、唯一の解決策は、データベースをクライアントの構内に展開しないことです(たとえば、SQL Azureなどのホストされたデータベースを使用します)。

クライアントがデータベースに干渉するのを単に防ぎたい場合は、契約でそのように規定することができます。干渉の監査と検出可能です。

于 2012-07-26T05:29:15.920 に答える
-2

はい、それは完全に可能です。統合セキュリティを使用してASP.NETにログインしているユーザーは、同じ資格情報を使用してSQLServerにログインすることはできません。両方とも完全に切断されています。SQLServerがアクセスを許可するように設定されている場合にのみ可能です。

私のアドバイスは、SQLログインとユーザーを作成し、SQLServerへのアクセスのみを許可することです。アプリケーションでは、接続文字列を作成するときに、統合セキュリティをtrueに設定せず、ユーザーが自分のSQLユーザー名とパスワードを入力してデータベースにアクセスできるようにします。

于 2012-07-26T05:20:50.347 に答える