MikePR
MikePR

Reputation: 2986

How to connect ASP.Net Core to a SQL Server Docker container on Mac

I am developing an ASP.Net core MVC application using Visual Studio 2017 on Mac. However, I am facing some problems to connect to an instance of SQL Server that is running on a Docker container.

This is the connection string I'm using:

"ConnectionStrings": {
    "myCustomConnString": "Server=localhost;Database=myDataBase;User Id=sa;Password=myPassw0rd;Trusted_Connection=True;MultipleActiveResultSets=true"
  }

And this is the error I am getting:

Cannot authenticate using Kerberos. Ensure Kerberos has been initialized on the client with 'kinit' and a Service Principal Name has been registered for the SQL Server to allow Kerberos authentication. ErrorCode=InternalError, Exception=Interop+NetSecurityNative+GssApiException: GSSAPI operation failed with error - An unsupported mechanism was requested (unknown mech-code 0 for mech unknown).

Using SQL Operation Studio, Azure Data Studio and/ or Visual Studio Code and passing the same parameters I can connect to the docker instance of SQL Server. But not when running the ASP.Net core app. So, I'm not sure if I am missing any additional parameter for the connection string.

Does anyone have try this before?

Regards!

Upvotes: 32

Views: 34702

Answers (8)

Marcomoto
Marcomoto

Reputation: 148

I solved mine by removing Integrated Security=true;.

Upvotes: 0

mayank parihar
mayank parihar

Reputation: 21

I ran the connection string as follows and it worked

"ConnectionStrings": {
    "DefaultConnection": "Server=localhost,1433; Database=ERPDb; User=sa; Password =*****; Trusted_Connection=false; TrustServerCertificate=true;"
  },

Upvotes: 2

Tamilvanan G
Tamilvanan G

Reputation: 11

Below string worked for me.

 Server=sql-server-db,1433;Database=EMP_DB_V2;User=SA;Password=Test_pwd@786;Trusted_Connection=False;MultipleActiveResultSets=True;

Upvotes: 1

Obainodtq
Obainodtq

Reputation: 51

I was able to solve mine by removing Trusted_Connection

Upvotes: 4

Solved mine by setting Trusted_Connection=False

Upvotes: 6

jonanv
jonanv

Reputation: 49

I ran the connection string as follows and it worked

"ConnectionStrings": {
    "DevConnection": "Server=localhost,1433;Database=TarjetaCreditoDB;User Id=sa;Password=myPassw0rd;MultipleActiveResultSets=True;"
  }

Upvotes: 4

Hicham Mounadi
Hicham Mounadi

Reputation: 469

I got the same issue, and it works simply by deleting Trusted_Connection=True; from the connection string

Upvotes: 16

Randy Eppinger
Randy Eppinger

Reputation: 1114

I know that @MikePR 's comment serves as the answer, but I wanted to provide a more complete answer for the issue I had. I could not get dotnet ef database commands to execute evan after using the connection string with Trusted_Connection=false. With the help of this article, I was able to use this connection string:

"ConnectionStrings": {
    "myCustomConnString": "Server=localhost,1433\\Catalog=myDatabase;Database=myDatabase;User=username;Password=MYSecurePWD;"
  }

Now, my migrations run against the SQL Server in the docker container. Note that the article did not include using Trusted_Connection=false. I assume that false is the default.

Upvotes: 41

Related Questions