我在使用 gem 文件 tiny_tds(版本 2.1.1)的 linux 容器中尝试连接到 Azure 托管实例上的 sql server。
我用来连接的代码是这样的:
client=TinyTds::Client.new(:username=>'username@full.server.name', :password=> 'password', :host=>'full.server.name.database.windows.net', :port=>3342, :database=>'database', :azure=>true)
我已经尝试从 ruby 控制台以及从容器内运行它。
这是我正在使用的 freetds 的信息:
Version: freetds v1.00.91 freetds.conf directory: /usr/local/etc MS db-lib source compatibility: no Sybase binary compatibility: no Thread safety: yes iconv library: yes TDS version: 7.3 iODBC: no unixodbc: no SSPI "trusted" logins: no Kerberos: no OpenSSL: yes GnuTLS: no MARS: no
我一直收到错误消息:
Login failed for user 'username@full.server.name
奇怪的是,我可以通过 freetds 进行连接:
tsql -H full.server.name.database.windows.net -U username -D database -p 3342 -P password
我想知道它是否与具有多个“。”的服务器/主机有关。主机名中的字符。
此外,根据我所读到的有关 tiny_tds 的内容,连接到 Azure 时,用户名需要附加 @servername。
我已经尝试了几个版本的 tiny_tds(全部无效)。
我还尝试了连接字符串的许多不同排列。纳达。
如果您有任何建议,请告诉我!!