【问题标题】:MS SQL Server dotnet core connection issuesMS SQL Server dotnet 核心连接问题
【发布时间】:2020-11-03 19:22:31
【问题描述】:

我正在使用 ASPNetBoilerplate 并尝试部署 ASP.NET MVC/Vue.js 应用程序的 docker 映像。该应用程序可以在具有与本地 SQL Server 的受信任连接的开发环境中正常构建和运行。当我尝试部署到在 Ubuntu 20 上运行的 docker 尝试连接到在 Windows 2019 Server 上运行的 SQL Server 时,我一直得到

用户“[已删除]”登录失败。
原因:密码与提供的登录名不符。 [客户端 xxx.yyy.zzz.aaa]

我可以使用这些完全相同的凭据通过 Azure Data Studio 或 SQL Server Management Studio 连接到数据库服务器。

【问题讨论】:

  • 您在前面的问题中声明您正在使用受信任的连接,但是,该错误是针对 SQL 身份验证的。错误告诉你问题,密码错误。
  • 也许我不清楚。我知道用户名/密码组合是正确的,因为我可以使用它通过 Azure Data Studio 和 Management Studio 进行连接。我知道该应用程序具有访问 SQL Server 的能力,因为它在开发中使用受信任的连接。
  • 那您在应用程序中没有正确输入密码。但是,如果您为连接提供用户名和密码,则您不能使用受信任的连接。它是用户名和密码受信任的连接。您没有将 AD 凭据作为 SQL 登录名传递,您是吗?如果是这样,那是行不通的。
  • 感谢您的回复...这是连接字符串,稍作修改:Server=172.16.0.19;数据库=****;用户 ID=****; Password=**** 当我通过 MSSM 或 Azure Data Studio 使用这些相同的凭据时,它们可以工作。数据库名称、用户 ID 和密码都是 4 个字符。
  • 有些东西错了,这里。事实是为指定的 SQL 登录(不是 AD)提供的密码是错误的。您需要在此处的问题中提供更多信息,包括您使用连接的代码和匿名连接字符串。

标签: sql-server .net-core aspnetboilerplate


【解决方案1】:

事实证明,dotnet core 对于如何在连接字符串中调用 SQL Server 有点挑剔。我必须包含端口,即使它是标准端口。

工作连接字符串:

服务器=172.16.0.19,1433;数据库=数据库;用户id=uid;密码=通过;

连接字符串无效,引发问题中列出的登录错误:

服务器=172.16.0.19;数据库=数据库;用户id=uid;密码=通过;

【讨论】:

    【解决方案2】:

    要将 Docker 与 Asp.net Boiler Plate 一起使用,我尝试了这个连接字符串,它对我有用

    {
      "ConnectionStrings": {
        "Default": "Server=10.0.75.1,1433; Database=MyProjectDb; User ID=sa;Password=PASSWORD';Trusted_Connection=False;MultipleActiveResultSets=True;"
    
      }, 
    

    注意:10.0.75.1 是默认的 docker 内部开关

    【讨论】:

      猜你喜欢
      • 2021-06-12
      • 2019-09-25
      • 2010-11-19
      • 1970-01-01
      • 2020-06-16
      相关资源
      最近更新 更多