所以我一直在尝试使用 nodejs 中的 mssql 使用可信连接(Windows身份验证)连接到我的SQL数据库,但到目前为止没有运气。
我有以下配置:
var express = require('express');
var config = {};
config.mssql = {
server: 'CLT-GFI-0278',
database: 'Interview',
options: {
trustedConnection: true
}
};
module.exports = config;
在 config.js 中进行此操作后,我继续将其集成到我想要在 mssql 中使用的文件中
var express = require('express');
var router = express.Router();
var sql = require('mssql');
var config = require('./../config');
sql.connect(config, function (err) {
console.log(err);
});
router.get('/getYear/:year', function (request, response) {
sql.Request()
.query('select * from SomeTable')
.then(function(recordsets) {
console.dir(recordsets);
})
.catch(function(err) {
console.log(err.message);
});
response.send();
});
module.exports = router;
有没有人可以指导我在trustedConnection工作的方向?我知道我可以创建一个用户并授予它权限,但我想让它像这样运行。非常感谢提前
答案 0 :(得分:1)
我在同样的问题上挣扎并在某处阅读
默认情况下无法使用Windows身份验证。
您必须使用登录名/密码组合登录或使用edge
包。
https://github.com/tjanczuk/edge
https://github.com/tjanczuk/edge-sql
示例:
var edge = require('edge');
var params = {
connectionString: "Server=YourServer;Database=YourDB;Integrated Security=True",
source: "SELECT TOP 20 * FROM SampleData"
};
var getData = edge.func( 'sql', params);
getData(null, function (error, result) {
if (error) { console.log(error); return; }
if (result) {
console.log(result);
}
else {
console.log("No results");
}
});