【问题标题】:Using SSPI with Ruby TinyTDS - possible?将 SSPI 与 Ruby TinyTDS 一起使用 - 可能吗?
【发布时间】:2012-12-30 06:11:08
【问题描述】:

在尝试使用 Ruby 连接到 SQLServer 数据库后,我终于发现了TinyTDS,这太棒了。

但是,它需要用户名和密码才能与数据库通信。在过去的 C# 测试中,我们使用 SSPI 来提供它,这样任何测试人员都可以选择一个脚本并运行它,它会使用他们的 Windows 身份验证详细信息。

我找不到使用 TDS 的方法(开始怀疑当前版本无法做到这一点)并希望有人能证明我错了,或者有其他建议?

干杯。

【问题讨论】:

    标签: ruby sql-server sspi tiny-tds


    【解决方案1】:

    找到了解决办法。

    我安装的 tiny-tds 是 0.51 版。

    最新版本有 SSPI,所以要获得它:

    gem install tiny_tds --version ">= 0.6.0.rc1"
    

    无需指定用户名/密码,默认使用 SSPI。

    举个例子:

    require  'tiny_tds'
    
        sql = "SELECT name from sys.databases"
        client = TinyTds::Client.new(:dataserver => "myserver", :database => "mydatabase")
        result = client.execute(sql)
        results = result.each(:symbolize_keys => true, :as => :array, :cache_rows => true, :empty_sets => true) do |rowset| end
        #THIS IS TO OUTPUT IT TO THE CONSOLE
        for i in (0..result.fields.length)
          printf("%14s", result.fields[i])
        end
        for j in (0...result.affected_rows)
          puts ""
          for i in (0...result.fields.length)
            printf("%14s",results[j].at(i))
          end
        end
    

    将打印出数据库名称列表,使用 SSPI 访问数据库。

    【讨论】:

    • 我想知道为什么 TinyTds 团队不发布具有该新功能的新 gem。
    • @Jarl 我猜是一个人在业余时间做这件事(我当时在推特上发了他)。
    • 你做了很棒的研究。感谢您公开回答您自己的问题。
    猜你喜欢
    • 2016-06-04
    • 1970-01-01
    • 1970-01-01
    • 2016-10-23
    • 1970-01-01
    • 1970-01-01
    • 2015-10-14
    • 2021-08-23
    • 2017-08-04
    相关资源
    最近更新 更多