3

Rubyを使用してSQLServerデータベースに接続しようと苦労した後、私はついにTinyTDSを発見しました。それは素晴らしいことです。

ただし、データベースと通信するには、ユーザー名とパスワードが必要です。過去のC#テストでは、これを提供するためにSSPIを使用していました。これにより、すべてのテスターがスクリプトを取得して実行し、Windows認証の詳細を使用できるようになります。

TDSでこれを行う方法が見つかりません(現在のバージョンでは不可能だと思われ始めています)。誰かが私を間違っていると証明したり、別の提案があることを期待していますか?

乾杯。

4

1 に答える 1

3

解決策を見つけました。

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を使用してデータベースにアクセスし、データベース名のリストを出力します。

于 2013-01-16T01:09:37.900 に答える