无法使用“ sa”连接到远程SQLServer

时间:2019-08-06 16:45:46

标签: sql-server go

我正在尝试使用我正在编写的Go程序的连接字符串连接到SQLServer的远程实例。

我具有相同用户的远程数据库的本地版本。

如果我使用这样的连接字符串连接到本地数据库,则可以正常工作:

Data Source=localhost;Initial Catalog=master;User Id=<user>;Password=<password>;

现在,如果我使用相同的凭据,但是我只是更改数据源,它也可以正常工作:

Data Source=<remoteIP>;Initial Catalog=master;User Id=<user>;Password=<password>;

现在,如果我尝试使用“ sa”登录,它将在本地运行,而不是在远程运行。

这很好用:

Data Source=localhost;Initial Catalog=master;User Id=sa;Password=<password>;

但这不起作用:

Data Source=<remoteIP>;Initial Catalog=master;User Id=sa;Password=<password>;

当我尝试在Go程序中连接到远程服务器时遇到的错误是:

Login error: mssql: Login failed for user 'sa'.

真正令人沮丧的是,如果我复制并粘贴用户名和密码,则可以使用该登录信息连接到SMSS中的远程数据库,一切正常。

我已仔细检查以确保远程“ sa”登录名同时允许Windows身份验证和SQL身份验证。是否存在其他设置或某些设置使我无法使用“ sa”登录到远程服务器?

我很困惑,因为如果我使用其他用户,我显然可以连接到远程数据库,但是我不能使用'sa'连接。

我必须在远程服务器上配置其他设置吗?我对this感到有些沮丧,因为我无法打印出实际的错误代码。它只是告诉我在打印错误消息时登录失败。

1 个答案:

答案 0 :(得分:0)

我发现了我的问题。

对于我创建的新用户(请参阅原始帖子的评论),由于我的连接字符串,它无法连接。

我首先尝试将连接字符串设置为以下内容,但仍然可以在本地连接我:

Initial Catalog=master;User Id=<user>;Password=<password>;

我很困惑,因为尽管我没有设置数据源,但这仍然有效。

所以我所做的就是尝试使用“服务器”,并且有效:

Server=<remoteIP>;Initial Catalog=master;User Id=<user>;Password=<password>;

所以事实证明这是一个无效的凭证错误,因为它始终尝试连接到我的本地数据库。感谢大家的投入。