ホームページ >バックエンド開発 >Golang >Go プログラムが SQL Server に接続できないのはなぜですか?

Go プログラムが SQL Server に接続できないのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-24 13:19:13439ブラウズ

Why Can't My Go Program Connect to SQL Server?

SQL Server での Go: 正常に接続できない

問題:

Go 使用時SQL Server ドライバーを使用してデータベースに接続すると、エラーが発生します発生:

login failed for user 'sakhaloo'

さらに、SQL Server Management Studio を使用してデータベースを開こうとすると、次のエラーが発生して失敗します:

Error:233: 
A connection was successfully established with the server, but then an
error occurred during the login process. (provider: Shared Memory
Provider, error: 0-no process is on the other end of the
pipe.)(Microsoft SQL Server,)

原因:

この問題は、次の要因の組み合わせによって発生します:

  • SQL Server インスタンスが正しくありませんTCP 接続用に構成されています。
  • Go プログラムは、ドメインまたはユーザーを指定せずに Windows 認証を使用しようとしています。
  • SQL Server ユーザーには、必要な認証がありません。

解決策:

  1. SQL Server の TCP 接続を構成します:
  • SQL Server 構成を開くマネージャー。
  • ネットワーク構成を展開 > MSSQLSERVER のプロトコル。
  • TCP/IP を有効にする。
  • SQL Server サービスを再起動する。
  1. SQL Server ユーザーを作成する権限:
  • SQL Server Management Studio を使用して、必要な権限を持つ SQL Server ユーザーを作成します。
  • ユーザーが、データベース。
  1. Go で SQL Server ユーザーを指定するプログラム:
  • Go プログラムで、接続文字列に SQL Server のユーザー名とパスワードを指定します。
  • Windows 認証が必要な場合は、ユーザーをそのままにしておきます。名前とパスワードは空白です。ただし SQL Server インスタンスが Kerberos 用に構成されていることを確認してください

信頼された Windows 認証のための更新されたソリューション:

  • Windows では、ユーザー ID が空か欠落している場合、シングル サインオン(信頼された接続) が使用されます。
  • 信頼された Windows 認証を使用するには、次のことを確認してください。 Go プログラム:

    condb, errdb := sql.Open("mssql", "server=servernameorip;user>

以上がGo プログラムが SQL Server に接続できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。