Удалять Integrated Security=True
Из вашей строки подключения, когда вы пытаетесь подключиться к имени пользователя/пароля SQL Server
Основная структура объекта с кодом первой строки подключения к удаленной базе данных
-
29-07-2022 - |
Вопрос
Я работаю над локальной машиной (приложение ASP.NET MVC 4), но теперь я хочу начать использовать SQL Server компании, поэтому мне нужно изменить строку подключения, чтобы подключить меня к этому удаленному серверу.
Установка такова:
- У меня есть подключение к VPN, где я использую IP -адрес, не могу показать точный IP, так что, скажем, - xxx.xxx.xxx.xxx
- У меня есть имя пользователя и пароль, чтобы подключиться к VPN - Vpnusername/Vpnpassword
- Когда я использую
Microsoft SQL Server Management Studio
Для подключения к удаленному серверу я использую тот же IP, который я использую для подключения к VPN - xxx.xxx.xxx.xxx - У меня разные имя пользователя и пароль для SQL Server - SQLuserName/SQLPASSWORD
У меня есть существующая строка подключения, которую я использую для подключения к серверу на своем компьютере, поэтому я подумал, что этого будет достаточно, чтобы просто изменить там параметры так:
<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" />
Таким образом, изменения от строки подключения, которая работает и подключает меня к моим локальному серверу, два:
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): вход в систему не удастся для пользователя 'vpnusername'
- ProviderIncOversibleException: поставщик не вернул строку Provider ManifestToken.
- ProviderIncOversibleException: произошла ошибка при получении информации о поставщике из базы данных. Это может быть вызвано структурой сущности, используя неправильную строку подключения.
Поэтому, по моему мнению, и, как указывает на исключение числа 3, что проблема заключается в том, как я использую строку соединения, что меня беспокоит. Number 1
Исключение, которое говорит о том, что логин потерпел неудачу, но не для моего sqlusername, а для vpnusername. Как я уже сказал - я действительно использую VPN -соединение и использую тот же IP - xxx.xxx.xxx.xxx
Чтобы подключиться как к VPN, так и к SQL Server (от Management Studio).
Есть идеи, как это решить?
Решение