使用具有 SQL 服务器身份验证的用户连接到 SQL Server Express 失败

Connection failed to SQL Server Express using user with SQL Server authentication

我在同一台机器上安装了 IIS 和 SQL Server Express。将网站部署到此环境后,出现此错误:

Cannot open database "MyDB" requested by the login. The login failed. Login failed for user 'IIS APPPOOL\USER'.

这是我设置 SQL 服务器用户

的连接字符串
<connectionStrings>
    <add name="myCS1" 
         connectionString="data source=172.20.3.20\SQLEXPRESS;initial catalog=MyDB;user id=SomeUser;password=SomeUser###;integrated security=True;MultipleActiveResultSets=True;" 
         providerName="System.Data.SqlClient" />
    <add name="myCS2" 
         connectionString="metadata=res://*/CLModel.csdl|res://*/CLModel.ssdl|res://*/CLModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=172.20.3.20\SQLEXPRESS;initial catalog=myDB;persist security info=True;user id=SomeUser;password=SomeUser###;MultipleActiveResultSets=True;App=EntityFramework&quot;" 
         providerName="System.Data.EntityClient" />
</connectionStrings>

我想使用 SQL 服务器用户连接到数据库,而不是 AppPool 用户。

我指定了登录名和密码,但似乎没有考虑此信息,在错误消息中我仍然看到 IIS 用户,但不是 sql。

我错过了什么?

好吧,你指定 both - 明确的用户 ID 和密码, Integrated Security=True - 在你的 myCS1 连接字符串:

data source=172.20.3.20\SQLEXPRESS;initial catalog=MyDB;
  user id=SomeUser;password=SomeUser###;integrated security=True;  

在这种情况下,集成安全性 赢得了您的用户 - 您需要指定 用户 ID 和密码并删除集成安全性 - 所以使用这个:

<connectionStrings>
    <add name="myCS1" 
         connectionString="data source=172.20.3.20\SQLEXPRESS;initial catalog=MyDB;user id=SomeUser;password=SomeUser###;MultipleActiveResultSets=True;" 
         providerName="System.Data.SqlClient" />
    <add name="myCS2" 
         connectionString="metadata=res://*/CLModel.csdl|res://*/CLModel.ssdl|res://*/CLModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=172.20.3.20\SQLEXPRESS;initial catalog=myDB;persist security info=True;user id=SomeUser;password=SomeUser###;MultipleActiveResultSets=True;App=EntityFramework&quot;" 
         providerName="System.Data.EntityClient" />
</connectionStrings>