【问题标题】:Database connection failed SQL Server 2012 Express + node.js数据库连接失败 SQL Server 2012 Express + node.js
【发布时间】:2012-07-03 03:46:13
【问题描述】:

我在尝试使用适用于 SQL 的 Node.JS 驱动程序时遇到“数据库连接失败”,示例来自: http://blogs.msdn.com/b/sqlphp/archive/2012/06/08/introducing-the-microsoft-driver-for-node-js-for-sql-server.aspx

我对 SQL Server Express 11.0 64 位本地使用的字符串

var conn_str = "Driver={SQL Server Native Client 11.0};Server=(local);Database=MyDB;Trusted_Connection={Yes}"; 

我还尝试了“sa”和另一个本地用户与 Windows 身份验证 - 都没有运气。

运行节点0.6.10(SQL驱动支持的版本),SQL Server Config显示SQL Native Client 11,所以版本匹配。

有什么方法可以解决吗??我的堆栈连接成功的任何指南/教程?

【问题讨论】:

    标签: windows node.js sql-server-2012-express


    【解决方案1】:

    已解决:

    我一直试图错误地访问 SQL Express 的命名实例。应该是.\\SQLEXPRESS,而不是(本地)或.\SQLEXPRESS

    正确的字符串:

     var conn_str = "Driver={SQL Server Native Client 11.0};Server=.\\SQLEXPRESS;Database=NPv1;Trusted_Connection=Yes";
    

    【讨论】:

      【解决方案2】:

      受信任的连接告诉连接使用进程的 Windows ID。如果您在 IIS 中托管此 ID,则此 ID 将是应用程序池正在使用的 ID。确保此 id 可以访问数据库服务器和数据库。除非您告诉它不要使用受信任的连接,然后在连接字符串中指定用户 ID 和密码,否则使用 sa 和其他本地用户不会解决问题(顺便说一句,不建议使用这种方法;如果您坚持使用受信任的连接可以)。

      【讨论】:

      • 感谢您的建议。我正在使用 Node.js 并运行命令行
      • 对不起,错过了那部分。您仍然可以使用受信任的连接;更改托管命令行提示符的 Windows 用户。或者,更好的是,使用 Powershell 并使用特定凭据启动它。
      • “更改 Windows 用户”是什么意思——因为我的用户是管理员,我的用户正在运行命令行提示符有什么问题?
      • 如果您以本地管理员身份运行,只要您没有更改 SQL Server 的默认权限就没有问题。但是对于部署,您不应该真正授予托管站点管理员权限的用户。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-28
      • 2013-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多