削除する Integrated Security=True
SQL Serverに接続しようとしているときに接続文字列からユーザー名/パスワード
コードを使用したエンティティフレームワークリモートデータベースへの最初の接続文字列
-
29-07-2022 - |
質問
私はローカルマシン(ASP.NET MVC 4アプリケーション)に取り組んでいますが、今度は会社のSQLサーバーの使用を開始したいので、そのリモートサーバーに接続するために接続文字列を変更する必要があります。
セットアップはこれです:
- IPアドレスを使用するVPN接続があり、正確なIPを表示できないので、xxx.xxx.xxx.xxxとしましょう
- vpn -vpnusername/vpnpasswordに接続するためにユーザー名とパスワードがあります
- 使用するとき
Microsoft SQL Server Management Studio
リモートサーバーに接続するには、VPN -xxx.xxx.xxx.xxxに接続するために使用するのと同じIPを使用します - SQL Server -SQLusername/SQLPassWordのユーザー名とパスワードが異なります
PCのサーバーに接続するために使用する既存の接続文字列があるので、そのようなパラメーターを変更するだけで十分だと思いました。
<add name="ProjectName.DAL.MyDbContext"
providerName="System.Data.SqlClient"
connectionString="Data Source=xxx.xxx.xxx.xxx;
Initial Catalog=DatabaseName;Integrated Security=True;
MultipleActiveResultSets=True;
user id=SQLUsername;password=SQLPassword;App=EntityFramework" />
したがって、私を動作して私のローカルサーバーに接続する接続文字列からの変更は2つです。
Data Source= xxx.xxx.xxx.xxx
- 私はIPを使用しています。ここでは、IP自体が十分であるのだろうか。使用する必要があります http://xxx.xxx.xxx.xxx または、IPだけが大丈夫ですか?user id=SQLUsername;pasword=SQLPassword
- 私はと同じユーザー名とパスワードを使用していますManagement studio
を提供することにより、削除サーバーに正常に接続できる場所からxxx.xxx.xxx.xxx
サーバー名として、およびsqlusername/sqlpasswordを使用していますSQL Server Authentincation
.
したがって、明確にするために - 管理スタジオの下では、リモートサーバーに接続するのに問題はありません。ただし、接続文字列を上に投稿したものに変更すると HomeController
データベースへの呼び出しが実行されていることを確認するためだけに非常に簡単なロジックがあります。
private MyDbContext db = new MyDbContext();
//
// GET: /Home/
public ActionResult Index()
{
return View(db.Users.ToList());
}
3つの例外があります:
- sqlexception(0x80131904):user 'vpnusername'のログインが失敗しました
- ProvididerIncompatibleException:プロバイダーは、プロバイダーマンファストトークン文字列を返さなかった。
- ProvididerIncompatibleException:データベースからプロバイダー情報を取得したときにエラーが発生しました。これは、誤った接続文字列を使用したエンティティフレームワークによって引き起こされる可能性があります。
だから私の意見ではそれに加えて、番号3の例外が問題は私が接続文字列を使用している方法であると言っているように、私は Number 1
ログインに失敗したが、sqlusernameではなくvpnusername用であるという例外。私が言ったように - 私は本当にVPN接続を使用していて、同じIPを使用しています - xxx.xxx.xxx.xxx
VPNとSQL Serverの両方に(Management Studioから)接続します。
これを解決する方法はありますか?
解決
所属していません StackOverflow