Remover Integrated Security=True
Na sua sequência de conexão enquanto você está tentando se conectar com um nome de usuário/senha do SQL Server
Estrutura de entidade com o código Primeira conexão string para um banco de dados remoto
-
29-07-2022 - |
Pergunta
Estou trabalhando em uma máquina local (aplicativo ASP.NET MVC 4), mas agora quero começar a usar o servidor SQL da empresa, então preciso alterar a string de conexão para me conectar a esse servidor remoto.
A configuração é a seguinte:
- Eu tenho uma conexão VPN onde uso um endereço IP, não posso mostrar o IP exato, então digamos - xxx.xxx.xxx.xxx
- Eu tenho nome de usuário e senha para conectar -se a VPN - VPNUserName/VPNPassword
- Quando eu uso
Microsoft SQL Server Management Studio
Para conectar -se ao servidor remoto, uso o mesmo IP que uso para conectar ao VPN - xxx.xxx.xxx.xxx - Eu tenho nome de usuário e senha diferentes para o servidor SQL - SQLUSERNAME/SQLPASSWORD
Eu tenho uma string de conexão existente que eu uso para conectar ao servidor no meu PC, então pensei que seria suficiente para alterar os parâmetros lá como:
<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" />
Portanto, as alterações da sequência de conexão que funcionam e me conecta ao meu servidor local são duas:
Data Source= xxx.xxx.xxx.xxx
- Estou usando o IP. Aqui, eu me pergunto se o próprio IP é suficiente. Devo usar http://xxx.xxx.xxx.xxx ou apenas IP está ok?user id=SQLUsername;pasword=SQLPassword
- Estou usando o mesmo nome de usuário e senha que noManagement studio
De onde posso me conectar com sucesso ao servidor Remover, fornecendo oxxx.xxx.xxx.xxx
como nome do servidor e usando SQLUSERNAME/SQLPassword emSQL Server Authentincation
.
Portanto, para ser claro - no estúdio de gerenciamento, não tenho problemas para me conectar ao servidor remoto. No entanto, quando eu altero a string de conexão com o que postei acima no meu HomeController
onde tenho lógica muito simples apenas para verificar se a chamada para o banco de dados é executada:
private MyDbContext db = new MyDbContext();
//
// GET: /Home/
public ActionResult Index()
{
return View(db.Users.ToList());
}
Eu recebo 3 exceções:
- SQLEXCECTION (0x80131904): o login falhou para o 'nome do VPNUserName' do usuário
- ProviderIncompatibleException: O provedor não retornou uma string proverManifestToken.
- ProviderIncompatibleException: ocorreu um erro ao obter informações do provedor do banco de dados. Isso pode ser causado pela estrutura da entidade usando uma string de conexão incorreta.
Então, além disso, na minha opinião, e como a exceção número 3 diz que o problema está na maneira como estou usando a string de conexão, o que me preocupa também é o Number 1
Exceção que diz que o login falhou, mas não para o meu nome SQLUSERN, mas para o nome do VPNUsern. Como eu disse - estou realmente usando a conexão VPN e uso o mesmo IP - xxx.xxx.xxx.xxx
conectar -se tanto à VPN quanto ao SQL Server (do Management Studio).
Alguma ideia de como resolver isso?
Solução