Sqlcmd:错误:适用于 SQL Server 的 Microsoft ODBC 驱动程序 17:用户“SA”登录失败

问题描述 投票:0回答:3

我正在使用

microsoft/mssql-server-linux:2017-latest
图像在 docker 上运行 SQL Server 数据库。

appsettings.json
中的数据库连接字符串定义为:

"ConnectionStrings": {
    "DefaultConnection": "Server=sql.data,1433;MultipleActiveResultSets=true;User Id=SA;Password=Pass@word"
  },

数据库服务在

docker-compose.yml
中定义如下:

  sql.data:
    image: microsoft/mssql-server-linux:2017-latest
    environment:
      - ID=SA
      - PASSWORD=Pass@word
      - ACCEPT_EULA=Y
    ports:
      - "1433:1433"

当我尝试在应用程序中连接到数据库(使用实体框架)时,出现以下错误:

SqlException:用户“SA”登录失败。

为了调试它,我登录到 docker 映像,并尝试使用以下命令从 docker 访问数据库:

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "Pass@word"

然后我收到以下错误:

Sqlcmd:错误:适用于 SQL Server 的 Microsoft ODBC 驱动程序 17:用户“SA”登录失败..

我尝试过

"
(双引号)、
'
(单引号),并且不引用用户名和密码,以及两者的任意组合,但仍然遇到相同的错误。

c# sql-server entity-framework docker asp.net-core
3个回答
5
投票

尝试在您的用户名和密码周围添加 '(引号): '萨' “密码@word”

"ConnectionStrings": {
"DefaultConnection": "Server=sql.data,1433;MultipleActiveResultSets=true;User Id='SA';Password='Pass@word'"

},


0
投票

将连接字符串中的

Password
替换为
SA_Password

  "ConnectionStrings": {
    "DefaultConnection": "Server=sql.data,1433;MultipleActiveResultSets=true;User Id=SA;SA_Password=Pass@word"
  },

0
投票

我遇到了同样的问题。正如你提到的。我尝试了上面评论的解决方案,但没有成功。您的问题解决了吗?你是怎么解决的?

© www.soinside.com 2019 - 2024. All rights reserved.