web-dev-qa-db-ja.com

ASP.Net CoreをMac上のSQL Server Dockerコンテナーに接続する方法

MacでVisual Studio 2017を使用してASP.NetコアMVCアプリケーションを開発しています。ただし、Dockerコンテナーで実行されているSQL Serverのインスタンスに接続するときにいくつかの問題に直面しています。

これは私が使用している接続文字列です:

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

そして、これは私が得ているエラーです:

Kerberosを使用して認証できません。 Kerberosがクライアントで「kinit」で初期化されていること、およびサービスプリンシパル名がKerberos認証を許可するようにSQL Serverに登録されていることを確認します。 ErrorCode = InternalError、Exception = Interop + NetSecurityNative + GssApiException:GSSAPIオペレーションがエラーで失敗しました-サポートされていないメカニズムが要求されました(不明なmech-code 0 for mech unknown)。

SQL Operation Studio、Azure Data Studio、またはVisual Studio Codeを使用して、SQL Serverのdockerインスタンスに接続できる同じパラメーターを渡します。ただし、ASP.Netコアアプリを実行している場合は除きます。したがって、接続文字列の追加パラメーターがないかどうかはわかりません。

誰かがこれを以前に試したことがありますか?

よろしく!

11
MikePR

@MikePRのコメントが答えになることは知っていますが、私が抱えていた問題について、より完全な答えを提供したいと思いました。 dotnet ef databaseで接続文字列を使用した後、Trusted_Connection=falseコマンドでevanを実行できませんでした。 この記事 の助けを借りて、私はこの接続文字列を使用することができました:

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

これで、私の移行は、Dockerコンテナー内のSQL Serverに対して実行されます。この記事にはTrusted_Connection=falseの使用は含まれていません。 falseがデフォルトだと思います。

8
Randy Eppinger