ruby-on-rails - 如何将 activerecord-sqlserver-adapter 与 TinyTDS *和* Windows 上的集成安全连接一起使用 *无需*以纯文本形式保存密码

标签 ruby-on-rails sql-server windows activerecord

我正在尝试使用 Rails 3.1。在 Windows 机器上使用 activerecord-sqlserver-adapter (3.1.1) 和 tiny_tds (0.4.5)。在阅读有关 TinyTDS 及其对 FreeTDS 的使用时,我似乎可以通过将域限定名称作为用户名(例如 DOMAIN\userbob)来使用集成安全性(又名 Windows 集成安全性/NTLM)。 但是 文档仍然要我在 database.yml 文件中输入域用户的密码。这是一种不好的做法,因为它不安全并且没有利用单点登录的优势,而单点登录正是集成安全性的一部分。

我可以在不将密码以纯文本形式保存在文件中的情况下进行连接吗?例如

developement:
    adapter: sqlserver
    mode: dblib
    dataserver: localhost
    database: dev_db
    username: DOMAIN\userbob
#    password: no_no_please_dont_make_me_type_it_here

但是,即使我输入了密码,我也会收到以下错误:

TinyTds::Error: Unable to connect: Adaptive Server is unavailable or does not exist
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/tiny_tds-0.4.5-x86-mingw32/lib/tiny_tds/client.rb:60:in `connect'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/tiny_tds-0.4.5-x86-mingw32/lib/tiny_tds/client.rb:60:in `initialize'

我知道我的服务器正在运行并且当前用户上下文可以连接,因为它有效:

sqlcmd -S localhost -d dev_db -E

有什么见解吗?可能吗?如果不是,它应该是。

最佳答案

在 SQL Server 配置管理器实用程序的“SQL Server 网络配置”中启用 TCP/IP。 然后重新启动 SQL Server 服务。

关于安全性,您需要提供自己的凭据,否则它将使用 sa 帐户。

关于ruby-on-rails - 如何将 activerecord-sqlserver-adapter 与 TinyTDS *和* Windows 上的集成安全连接一起使用 *无需*以纯文本形式保存密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7655312/

相关文章:

c# - 如果一项操作失败则回滚

jquery - sprockets::StaticPages#home 中未找到文件

ruby-on-rails - 我如何在 Ruby 中使用乐观主义者?

sql pivot 行到多列

c# - 从用户在 asp.net c# 中输入的数据向 SQL Server 数据库添加行

windows - 为什么在 Windows SDK 中找不到 cfgmgr32.lib?

windows - 在同一台 Windows 机器上安装多个 Jenkins 实例会导致问题

windows - 适用于 Windows 的双 socket

ruby-on-rails - 更改参数以使用 rails 和 sunspot 进行搜索

java - 使用scala访问google API,前端在Ruby on Rails中