具有node.js和MS集成安全性的节点SQL

我有一些示例代码使用Microsoft SQL Server用户名和密码成功连接到SQL Server。 但我想知道是否有一种方法来使用此脚本的集成安全性。 基本上这意味着使用login用户的凭据,而不需要在脚本中提供密码。

var sql = require('mssql'); var config = { server: '127.0.0.1', database: 'master', user: 'xx', password: 'xxx', options : { trustedConnection : true } } var connection = new sql.Connection(config, function(err) { // ... error checks if(err) { return console.log("Could not connect to sql: ", err); } // Query var request = new sql.Request(connection); request.query('select * from dbo.spt_monitor (nolock)', function(err, recordset) { // ... error checks console.dir(recordset); }); // Stored Procedure }); 

希望我可以添加这个作为评论,但没有足够的声誉呢…但是当你运行这个没有提供用户名/密码在config对象时会发生什么?

Windows身份validation发生在login级别,因此不需要在应用程序级别提供它。

只是浏览文档,看起来像你不能提供一个原始的连接string来连接,但连接你想要build立的东西看起来像这样:

var connectionString= 'Server=MyServer;Database=MyDb;Trusted_Connection=Yes;'

mssql模块的源代码在这里: https : //github.com/patriksimek/node-mssql/blob/master/src/msnodesql.coffee …也许你可以叉和做拉请求,将提供一个可选标记是否使用Windows身份validation,该标志将从模块源代码中的CONNECTION_STRING_PORTvariables中删除Uid={#{user}};Pwd={#{password}} (因为它不需要进行Windows身份validation)。