挣扎于这个问题。现在我正在Windows机器上构建一个服务应用程序,我一直使用以下代码行连接到SQL Server
dbConnect(odbc::odbc(), .connection_string = paste0('driver={SQL Server};server=', SERVER, ';trusted_connection=true'))
它运行良好,但我的问题是我正在构建的这个应用程序将在iOS上使用,最终是一个Linux容器,所以我不能依赖于" trusted_connection"往前走。但是,以下代码对我来说失败了:
dbConnect(odbc::odbc(), .connection_string = paste0('driver={SQL Server};server=', SERVER, ';UID=',USER,";PWD=",PWORD))
在那一行我删除了#34; trusted_connection"并输入我用来登录我的Windows机器的用户名和密码,但是我收到了这个错误:
Error: nanodbc/nanodbc.cpp:950: 28000: [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'fhcrc\sgreenle'
。
用户是我通过SQL Server Management Studio连接到服务器时看到的,密码匹配,但不知怎的,我仍然有这个错误。
关于如何调试或解决这个问题的任何建议都会令人惊讶。这在我身边已经有一段时间了,我无法解决它的生命,我担心我的项目会在没有解决方案的情况下死在水中。
答案 0 :(得分:1)
在连接字符串中提供用户名和密码时,您正在使用SQL身份验证。您的代码示例显示您尝试使用Active Directory帐户进行SQL身份验证,但这不起作用。您需要使用SQL身份验证创建单独的SQL Server帐户,并输入这些凭据。有用的参考:https://docs.microsoft.com/en-us/sql/relational-databases/security/choose-an-authentication-mode